|
|
||
|---|---|---|
| android | ||
| assets | ||
| build_x64 | ||
| database | ||
| docs | ||
| images | ||
| models | ||
| services | ||
| tessdata | ||
| tests/mock_server | ||
| tools/adb | ||
| tutorials | ||
| views | ||
| .gitignore | ||
| app.rc | ||
| arc.icns | ||
| arc.ico | ||
| arc.png | ||
| build_x64.bat | ||
| BUILD.md | ||
| CMakeLists.txt | ||
| config.ini | ||
| eng.traineddata | ||
| main.cpp | ||
| migrations.sql | ||
| no_devices.png | ||
| README.md | ||
| rus.traineddata | ||
| split_zip.ps1 | ||
ARC Desktop
Десктопное Qt6/C++ приложение для мониторинга и автоматизации Android-приложений мобильных банков через ADB. Принимает задачи с бэкенда (получение профиля/балансов, выписка по транзакциям, создание платежей), исполняет их в реальном приложении банка на подключённом устройстве и возвращает результат.
Репозиторий:
git@git.brtservice.io:BRT/arc.git
Быстрый старт
git clone git@git.brtservice.io:BRT/arc.git
cd arc
# macOS
brew install qt tesseract leptonica
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
./ARCDesktopProject
Подробнее — см. BUILD.md (macOS + Windows).
При первом запуске потребуется токен авторизации; настройки лежат в config.ini.
Документация
Все актуальные материалы в каталоге docs/. Точка входа — docs/index.md.
Архитектура и фичи
| Документ | О чём |
|---|---|
| docs/index.md | Общая схема приложения, потоки, технологии |
| docs/events.md | Жизненный цикл задачи: API → БД → выполнение скриптом → отчёт |
| docs/bank-setup-wizard.md | BankSetupWizard — мастер заведения банковского профиля (Ozon, Black, Dushanbe) |
| docs/status-sync.md | Синхронизация online/offline статусов устройств и сервиса |
| docs/black_tasks.md | Скрипты для банка Black (Birbank) |
| docs/ozon_tasks.md | Скрипты для Ozon |
Backend API
| Документ | О чём |
|---|---|
| docs/api/auth.md | Логин, refresh, хранение токенов |
| docs/api/profile.md | bank_profile и material (карты) |
| docs/api/device.md | Регистрация десктопов и Android-устройств, отправка скриншотов |
| docs/api/task.md | Получение задач, отправка результатов |
| docs/api/network.md | Полная карта HTTP-вызовов приложения |
| docs/api/openapi.json | OpenAPI спецификация бэкенда |
Сборка и тесты
| Документ | О чём |
|---|---|
| BUILD.md | Сборка под macOS и Windows |
| tests/mock_server/README.md | Локальный mock-бэкенд для интеграционных тестов |
| tests/mock_server/WINDOWS.md | Особенности запуска моков на Windows |
| tutorials/ui_info.md | Туториал по UI приложения |
Архитектура
MainWindow (Qt6 GUI)
├── DeviceScreener (QThread) — опрос ADB-устройств, скриншоты
├── EventHandler (QThread) — оркестратор задач, запуск bank-скриптов
└── NetworkService (QThread) — REST API + monitoring relay
android/<bank>/ — автоматизация конкретного банка (ozon, black, dushanbe, ...)
├── *Script.{h,cpp} — CommonScript, LoginAndCheckAccountsScript, PayByCardScript, GetLastTransactionsScript, ...
└── ScreenXmlParser — парсинг ADB UI dump
android/adb/ — обёртка над adb (скриншот, tap, swipe, input, uiautomator dump)
android/ocr/ — Tesseract + утилиты поиска текста на скриншоте
android/dump/ — захват UI-дампов
database/ — SQLite через DatabaseManager (singleton) + DAO-слой
Таблицы: devices → applications → accounts → transactions/events
models/ — POCO: DeviceInfo, AccountInfo, EventInfo, TransactionInfo, ...
services/ — фоновые потоки (DeviceScreener, EventHandler, NetworkService, AppLogger, LogArchiveSender)
views/ — Qt-виджеты: MainWindow, DeviceWidget, BankSetupWizard, AccountWindow, ...
Полная диаграмма потоков и сигналов — docs/index.md, детально по задачам — docs/events.md.
Технологии
- Qt 6 (Widgets, Network, Sql, Xml)
- C++17, CMake (опционально Ninja)
- SQLite (через QtSql)
- ADB (платформенные бинари в
tools/adb/) - Tesseract OCR + Leptonica (
eng.traineddata,rus.traineddata)
Поддерживаемые банки (в текущем config.ini): Ozon, Black (Birbank), Dushanbe City Bank. Список расширяется через [apps] list= в config.ini.
Конфигурация
Главный файл — config.ini:
| Секция | Назначение |
|---|---|
[common] |
Версия, валюты, токен |
[apps] list= |
Активные банки |
[db] dbPath= |
Путь к SQLite (./database/app_data.db) |
[net] |
apiBase, пути ручек, мониторинг-релей |
[<bank>] |
android_package_name, currency, country, app_version, ... |
Схема БД — migrations.sql (5 таблиц).
Полезные пути
- Логи приложения:
application.log(в корне), архив отправляется черезLogArchiveSenderнаmonitoringBase - ADB-бинари для Windows:
tools/adb/windows/ - Тестовые скриншоты/XML:
assets/<bank>/ - Иконки и ресурсы:
images/,arc.icns,arc.ico,app.rc
Скрипты бэкенда и операционные ссылки
- Backend API (prod): см.
apiBaseвconfig.ini - Monitoring relay:
142.93.102.40:8080— релеит/monitoring/logи/monitoring/dumpв Telegram (systemdarc-monitoring.service)