Установка на парк устройств и обновления
Если вы раздаёте рации клубу, организации или продаёте их с предустановленным DMRConnect, здесь всё, что нужно: какие файлы брать, как проверить подлинность, как приложение будет обновляться и как настроить сразу много устройств.
- Кому
- продавцам раций, клубам и организациям с парком устройств, интеграторам MDM
- Пакет
ru.stackworks.dmr- Подпись
- SHA-256
D2:B3:C4:2E:7D:87:BF:BE:E3:20:44:0B:6B:E9:49:7B:6B:87:F3:E8:B0:68:88:1D:A8:F2:C8:E3:2C:66:D2:EF - Цена
- приложение бесплатное, лицензий и ключей на устройство не нужно
Какой файл ставить
| Файл | Android | Процессор | Когда брать |
|---|---|---|---|
| dmrconnect.apk | 7.0 и новее | все | универсальный, если не знаете, что внутри рации. Самый большой, около 26 МБ |
| dmrconnect-arm64.apk | 7.0 и новее | arm64-v8a | современные телефоны и рации, лучший звук: вокодер MD380 |
| dmrconnect-armv7.apk | 7.0 и новее | armeabi-v7a | 32-битные рации, например Hytera P50 |
| dmrconnect-legacy.apk | 5.1.1 и 6 | все | старые рации и телефоны, например Motorola LEX F10 |
| dmrconnect-legacy-arm64.apk dmrconnect-legacy-armv7.apk | 5.1.1 и 6 | под процессор | то же, файл поменьше |
Процессор устройства покажет adb shell getprop ro.product.cpu.abilist или наша «Проверка рации». Сборка для Android 5.1-6 отличается от основной: в ней нет вокодера MD380, звук на приёме хуже, нет уведомлений RuStore. Для Android 7 и новее она не нужна.
Из RuStore ставится та же программа. Разница в том, что её обновляет магазин, а не само приложение.
Проверить подлинность
Все сборки, с сайта, из RuStore и для Android 5.1-6, подписаны одним ключом. Перед установкой на парк сверьте отпечаток:
keytool -printcert -jarfile dmrconnect.apk | grep SHA256
# SHA256: D2:B3:C4:2E:7D:87:BF:BE:E3:20:44:0B:6B:E9:49:7B:6B:87:F3:E8:B0:68:88:1D:A8:F2:C8:E3:2C:66:D2:EF
apksigner verify --print-certs dmrconnect.apk
Если отпечаток другой, файл не наш, не ставьте его. Из-за общей подписи сборки можно менять друг на друга без удаления приложения и потери настроек.
Массовая установка
На устройства с включённой отладкой по USB:
adb install -r dmrconnect.apk
# на несколько подключённых раций сразу
for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
adb -s "$s" install -r dmrconnect.apk
done
Через MDM ставится как обычное приложение по пакету ru.stackworks.dmr. Особых прав приложение не требует. Человек при первом запуске сам разрешает микрофон и уведомления, а для кнопок в фоне включает службу специальных возможностей, см. «Кнопка PTT».
После перезагрузки приложение само переподключается к последнему серверу, если у человека это включено или на устройстве работал хотспот. Сервис после каждой загрузки у всех подряд мы не поднимаем: на части телефонов система за это роняет приложение.
Как приложение обновляется
Сборки с сайта проверяют обновление при каждом запуске. Они читают файл канала и, если там версия новее установленной, предлагают человеку обновиться. Ставит обновление только человек: Android всегда спрашивает подтверждение установки. Сборка из RuStore сама не проверяет, её обновляет магазин.
| Канал | Файл | Для каких сборок |
|---|---|---|
| основной | dmrconnect.ru/version.json | Android 7.0 и новее |
| старые устройства | dmrconnect.ru/legacy/version.json | сборка для Android 5.1.1 и 6 |
{
"versionCode": 105,
"versionName": "2.2.0",
"url": "https://dmrconnect.ru/dmrconnect.apk",
"notes": "DMRConnect 2.2.0\n- ...",
"urls": {
"arm64-v8a": "https://dmrconnect.ru/dmrconnect-arm64.apk",
"armeabi-v7a": "https://dmrconnect.ru/dmrconnect-armv7.apk"
}
}
Приложение сравнивает versionCode со своим. Файл берёт из urls по первому подходящему процессору устройства, а если подходящего нет, то общий url. Так рация качает 8-15 МБ вместо 26. Текст notes показывается человеку в окне обновления. Отдельный канал у старых устройств нужен, чтобы рация на Android 5.1 не скачала основную сборку, которая на ней не встанет.
Файл канала можно читать и вашей системе учёта, чтобы видеть, какая версия сейчас актуальна.
Настроить много раций сразу
Вводить серверы на каждой рации руками не нужно. В облачной CPS cps.dmrconnect.ru (вход через Telegram) вы один раз собираете конфиг: серверы, позывные и DMR ID, контакты, Talker Alias. Потом добавляете устройства и назначаете им конфиги.
- На каждой рации один раз запустите DMRConnect. Device ID показывается в «Настройках», его можно скопировать.
- В кабинете добавьте устройства по Device ID. Добавить можно только устройство, на котором приложение уже запускалось, случайный номер кабинет не примет.
- Назначьте устройствам конфиги. Одной рации можно назначить несколько, серверы сложатся.
- На рации нажмите «Настройки», «Скачать настройки». Серверы и контакты применятся как есть, на устройстве ничего донастраивать не нужно.
Это особенно удобно для раций без клавиатуры и без сенсора, например Hytera P50: там пункт «Скачать настройки» есть в кнопочном меню. Звук, тема и назначение кнопок в конфиг не входят, их каждый настраивает у себя.
Партии и предустановка
Если вы продаёте рации с DMRConnect или переводите на него организацию, напишите в группу DMRConnect. Проверим модель до закупки, добавим её в профили, чтобы кнопки работали сразу, и подскажем, какую сборку ставить.
Нашли неточность или не хватает функции? Напишите в группу DMRConnect, поправим справочник.