Skip to content

Commit 9bb934f

Browse files
committed
fix apksecurity
1 parent 360f3f7 commit 9bb934f

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

‎app/src/main/java/com/mg4/control/update/ApkSecurity.kt‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,21 @@ object ApkSignatureVerifier {
8282
if (!ok) {
8383
AppLogger.w(TAG, "Signature de l'APK non conforme — installation refusée " +
8484
"(archive=${archive.size} cert(s), installée=${installed.size} cert(s))")
85+
// Les compteurs seuls ne permettent pas de trancher entre les trois causes réelles :
86+
// archive illisible (0 cert — typiquement une signature v2 sans v1, que
87+
// getPackageArchiveInfo ne remonte pas sur AAOS 9), clé différente, ou lecture de
88+
// notre propre signature en échec. Les empreintes le disent en une ligne.
89+
AppLogger.w(TAG, " archive : ${describe(archive)}")
90+
AppLogger.w(TAG, " installée : ${describe(installed)}")
8591
}
8692
return ok
8793
}
8894

95+
/** Empreintes tronquées, suffisantes pour identifier une clé dans un log. */
96+
private fun describe(certs: Set<String>): String =
97+
if (certs.isEmpty()) "(aucune — archive illisible, non signée, ou signée v2 sans v1)"
98+
else certs.joinToString(", ") { it.take(16) + "…" }
99+
89100
/** Empreintes SHA-256 des certificats signant le fichier APK [apk]. */
90101
private fun fingerprintsOfArchive(context: Context, apk: File): Set<String> = try {
91102
@Suppress("DEPRECATION")

‎app/src/main/java/com/mg4/control/update/UpdateChecker.kt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ object UpdateChecker {
8282
// Essai GitHub → fallback GitLab. Le canal beta ne concerne que GitHub :
8383
// les builds de test ne sont pas publies sur GitLab.
8484
val beta = isBetaChannel(context)
85+
// Tracer le canal AVANT la requete : sans cette ligne, un log qui montre une
86+
// release stable ne permet pas de distinguer « interrupteur beta non coche »
87+
// de « aucune beta publiee », et il faut relire le code pour trancher.
88+
AppLogger.i(TAG, "Canal ${if (beta) "BETA (pre-releases incluses)" else "STABLE"}" +
89+
" — version installee $currentVersion")
8590
val release = fetchFromGitHub(beta)
8691
?: fetchFromGitLab()
8792
?: run {

0 commit comments

Comments
 (0)