Document Android debug-signed rollout policy

This commit is contained in:
Курнат Андрей
2026-06-10 06:52:29 +03:00
parent 0961491d52
commit 4f69012249
5 changed files with 40 additions and 2 deletions
@@ -123,6 +123,15 @@ class AppUpdateManager(private val fragment: Fragment) {
}
private fun showErrorDialog(context: Context, error: Throwable) {
if (error is SignatureMismatchException) {
AlertDialog.Builder(context)
.setTitle(R.string.update_reinstall_required_title)
.setMessage(R.string.update_reinstall_required_message)
.setPositiveButton(android.R.string.ok, null)
.show()
return
}
AlertDialog.Builder(context)
.setTitle(R.string.common_error)
.setMessage(context.getString(R.string.update_error, error.message ?: error.javaClass.simpleName))
@@ -216,7 +225,7 @@ class AppUpdateManager(private val fragment: Fragment) {
}
if (!hasTrustedSignature(context, downloadedPackageInfo)) {
error(context.getString(R.string.update_signature_error))
throw SignatureMismatchException(context.getString(R.string.update_signature_error))
}
}
@@ -324,6 +333,8 @@ class AppUpdateManager(private val fragment: Fragment) {
val sha256: String
)
private class SignatureMismatchException(message: String) : IllegalStateException(message)
companion object {
private const val ARGUS_BASE_URL = "https://argus.kusoft.xyz"
private const val ARGUS_MANIFEST_URL =
@@ -123,6 +123,8 @@
<string name="update_version_error">Скачанное обновление не новее установленного приложения.</string>
<string name="update_metadata_error">Скачанное обновление не совпадает с метаданными релиза в Аргус.</string>
<string name="update_signature_error">Скачанное обновление подписано не сертификатом установленного приложения.</string>
<string name="update_reinstall_required_title">Требуется переустановка</string>
<string name="update_reinstall_required_message">Эта установленная сборка подписана другим сертификатом, чем текущий релиз QSfera в Аргус. Android не может обновить её поверх установленной. Сохраните несинхронизированные файлы, удалите эту сборку и установите QSfera из Аргус.</string>
<string name="update_apk_parse_error">Скачанное обновление не удалось прочитать как Android-пакет.</string>
<string name="update_release_not_found">Последний Android-релиз не найден.</string>
<string name="pattern_enter_pattern">Пожалуйста, введите графический ключ</string>
@@ -125,6 +125,8 @@
<string name="update_version_error">Downloaded update is not newer than the installed app.</string>
<string name="update_metadata_error">Downloaded update does not match Argus release metadata.</string>
<string name="update_signature_error">Downloaded update is not signed with the installed app certificate.</string>
<string name="update_reinstall_required_title">Reinstall required</string>
<string name="update_reinstall_required_message">This installed build was signed with a different certificate than the current QSfera release in Argus. Android cannot update it in place. Back up unsynced files, uninstall this build, then install QSfera from Argus.</string>
<string name="update_apk_parse_error">Downloaded update could not be read as an Android package.</string>
<string name="update_release_not_found">Latest Android release was not found.</string>
<string name="pattern_enter_pattern">Please enter your pattern</string>