Создание супер админа

Верификация

Radio Angel Admin — вход

Загрузка...

Radio Angel Admin

Управление админами

Права на таблицы

База данных

Дамп и SQL

Дамп портативный и идемпотентный: CREATE IF NOT EXISTS / OR REPLACE, без DROP/CASCADE. Можно безопасно применять на другом окружении (существующую схему не меняет).

Дамп и SQL


Таблицы

    Encrypt / Decrypt

    AES-256-CBC. JSON — API wire; Brotli — сжатый+шифрованный payload (если используется).

    JSON — API-ответы и legacy .txt (AES(JSON)). Brotli — CDN *_br*: Base64(AES(Brotli(utf8))).

    server — runtime-ключ с сервера; local — тот же ключ, что зашит в приложении. Словарь/пресеты CDN — обычно server.

    Keystore ключи

    Нужен публичный ключ из signing certificate (один на все установки приложения, не ключ устройства). Как получить через логи: в Android приложении вызови KeystoreHelper.getSigningCertificatePublicKeyBase64(context) и возьми значение из логов (Base64 без переносов).

    Как получить через cmd (несколько вариантов):

    Вариант A: keytool → exportcert (самый простой)
    1) Найди файл keystore, которым подписан APK/AAB.
    2) Выполни:
    keytool -exportcert -rfc -keystore /path/to/keystore.jks -alias YOUR_ALIAS | openssl x509 -pubkey -noout | openssl pkey -pubin -outform DER | base64
    Возьми результат (одна строка Base64) и вставь в поле "Публичный ключ".

    Release keystore (проверенная команда)
    Формат этой команды правильный (SPKI DER → Base64 без переносов) — так же, как Android отдаёт signingCertPublicKey.
    Но ключ должен быть из того сертификата, которым реально подписан установленный APK, а не upload-ключа.
    Если включён Google Play App Signing, локальный .jks — это upload key. На устройстве приложение подписано другим ключом из Play Console.

    1) Из локального JKS (сработает только если этим же ключом подписан установленный APK). В конце нужен ; echo — иначе приглашение терминала (имя пользователя) прилипает к Base64, и ключ при копировании ломается:
    keytool -exportcert -keystore sofment-release-key.jks -alias YOUR_ALIAS -storepass YOUR_PASSWORD | openssl x509 -inform DER -pubkey -noout | openssl pkey -pubin -outform DER | base64 | tr -d '\n';echo

    2) Надёжнее — из APK, который стоит на телефоне / из Play (совпадает с тем, что шлёт приложение).
    Сначала v1-подпись (если в APK есть META-INF/*.RSA):
    unzip -p app-release.apk 'META-INF/*.RSA' | openssl pkcs7 -inform DER -print_certs | openssl x509 -pubkey -noout | openssl pkey -pubin -outform DER | base64 | tr -d '\n'
    Если файлов несколько, подставь точное имя из unzip -l app-release.apk | grep META-INF.
    Если RSA/EC в META-INF нет (только v2/v3) — PEM из Play Console или новый apksigner (--print-certs-pem есть не во всех SDK).
    Старый apksigner verify --print-certs печатает отпечатки сертификата, не public key — его недостаточно.

    3) Или сертификат App signing key из Play Console (App integrity → App signing), не Upload key:
    openssl x509 -in deployment_cert.pem -pubkey -noout | openssl pkey -pubin -outform DER | base64 | tr -d '\n'

    Сверь строку с логом приложения: KeystoreHelper.getSigningCertificatePublicKeyBase64(context) — они должны совпасть посимвольно.
    Это identity-ключ (whitelist). Отдельный per-device keystorePublicKey сюда добавлять не нужно; если у ключа включён DEVICE_KEY_ENFORCE, устройство всё равно должно пройти enroll.

    Debug keystore (~/.android/debug.keystore)
    Alias по умолчанию: androiddebugkey, пароль: android
    keytool -exportcert -rfc -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | openssl x509 -pubkey -noout | openssl pkey -pubin -outform DER | base64

    Вариант B: keytool -list -v (через Public Key HEX)
    1) keytool -list -v -keystore /path/to/keystore.jks -alias YOUR_ALIAS
    2) Скопируй поле Public Key (HEX), убери пробелы/переносы:
    printf "%s" "PUBLIC_KEY_HEX" | xxd -r -p | base64

    Вариант C: через APK (если есть подписанный APK)
    apksigner verify --print-certs /path/to/app.apk
    Скопируй Certificate DN / SHA-256 тут не подходит — нужен именно public key.
    Для public key используй:
    apksigner verify --print-certs /path/to/app.apk | awk -F': ' '/Signer #1 certificate:/ {p=1} p && /Public key/ {getline; print}'
    Если вывод в HEX — преобразуй так же, как в варианте B.

    Список ключей

    Возможности приложения

    Настройки сразу передаются мобильным приложениям. После каждого сохранения версия возможностей увеличивается — клиент применит новые настройки только один раз.

    Общие возможности

    Через запятую. Один вариант отключит выбор на клиентах и покажет это значение.
    Для обоих списков. При одном варианте берётся он, независимо от этого поля.
    Увеличится на 1 после сохранения.

    Pro-функции

    Выключено — все пользователи получают Pro-доступ, а настройки Free/Pro ниже не применяются.
    Используется сервером для защищённых Pro-действий, когда включена проверка целостности.
    Технические идентификаторы через запятую: library — медиатека, auth.devices — устройства, subscription — подписка.
    Технические идентификаторы через запятую: playback — воспроизведение, library — медиатека, auth.devices — устройства.

    Доступ и безопасность

    Настройки сервера

    Настройки работы каталога, веб-плеера, проверки стримов, базы данных и ключей. Значения сохраняются в БД и имеют приоритет над .env. Параметры с пометкой «перезапуск» применятся после перезапуска соответствующего процесса.

    Переменные окружения

    Непустое значение в БД важнее .env. Серым — наследование (.env или дефолт из кода). Ширину колонок можно менять (сохраняется в браузере). Удаление каталожных ключей скрывает их; произвольные — удаляет из БД.

    Проверка стримов

    Сначала показаны станции, которые проверил или ещё должен проверить worker. Статистика из каталога. Обновление только по кнопке — без автополлинга. «Сначала» ставит флаг для воркера; сброс очереди произойдёт на следующем проходе.

    Нажмите «Обновить», чтобы загрузить статистику.

    Редактировать пользователя

    Добавить слово в пресет

    Добавить слово в словарь

    Слово:

    Одобрить запрос

    Слово:

    Отклонить запрос

    Слово:

    Строка

    Редактирование value

    Создать таблицу

    Экспорт таблицы:

    Изменить выбранные станции:

    Отметьте только те параметры, которые нужно применить ко всем выбранным станциям.

    Импорт данных в таблицу:

    Создать FCM сообщение

    Обновить версию

    Текущая: —. Шаг кнопок: 0.0001