docs(licence): l'APK reutilisera la licence desktop, pas la sienne

Differe volontairement : l'APK ne part chez personne aujourd'hui. Le
jour venu, l'instantane publie par le poste portera la licence et le
telephone exigera d'y en trouver une — il le lit deja, donc aucun
nouveau format, aucune empreinte Android, aucune emission de plus.

Les trois raisons de ne pas refaire un second dispositif sont notees
pour ne pas les re-deriver : Java attend du DER la ou CNG accepte r||s
brut, ANDROID_ID est remis a zero par une reinitialisation d'usine (donc
des clients legitimes refuses), et un APK se repaquette en dix minutes.

Et l'APK n'aura PAS a verifier la signature, seulement la presence :
payer le DER et le JNI pour durcir un controle que le repaquetage retire
serait le mauvais echange.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-09-05 19:13:12 +01:00
parent 67c13332d0
commit 370d35f69a
+34
View File
@@ -425,6 +425,40 @@ Settings -> Licence, revele seulement quand `config.txt` existe a cote de l'exe
`PM.Licence.ClearLicence`, et evite d'avoir a supprimer `prefs.bin` — qui
desactive mais emporte le mode de deverrouillage, le nom retenu et la sync.
### Cote Android : differe, et le jour venu on reutilisera la licence desktop
**Rien n'est fait, et c'est deliberе** — l'APK ne part chez personne aujourd'hui,
on l'installe soi-meme par adb. Un dispositif de licences sans destinataire est
du code qui vieillit sans jamais s'executer chez quelqu'un.
Le jour ou l'APK partira chez des clients, **ne pas refaire un second dispositif**.
Trois raisons, a garder pour ne pas les re-deriver :
- **L'elegance du cote Windows ne se transporte pas.** Elle venait de ce que
.NET sur Windows EST CNG : la signature `r||s` brute est deja celle qu'attend
`BCryptVerifySignature`. **Java attend du DER** — il faudrait emettre deux
formats ou convertir, plus un pont JNI vers `java.security.Signature`. La
moitie penible qu'on avait evitee reviendrait.
- **Pas d'empreinte materielle solide sur Android.** Plus d'IMEI ni de numero de
serie sans permission privilegiee ; il reste `ANDROID_ID`, **remis a zero par
une reinitialisation d'usine** — donc des clients legitimes qui perdent leur
licence sans rien avoir fait. C'est le defaut couteux, celui qui refuse
quelqu'un qui a paye.
- **Un APK se contourne bien plus facilement qu'un exe.** `repack-apk.ps1` en
est la demonstration : decompiler, retirer un test, resigner est de la routine
outillee.
**La forme retenue** : l'instantane publie par le poste porte la licence, et
l'APK exige d'y en trouver une. Le telephone lit deja cet instantane — aucun
nouveau format d'emission, aucune empreinte Android, aucune licence
supplementaire a fabriquer.
**Et l'APK n'a PAS a verifier la signature** : il constate la presence, rien de
plus. Payer le DER et le JNI pour durcir un controle que le repaquetage retire
en dix minutes serait le mauvais echange. Le but est de tenir le mobile attache
a un poste paye, pas de resister a une attaque — l'APK ne peut pas resister, et
faire semblant couterait plus que de l'admettre.
**ORDRE OBLIGATOIRE.** Tant que `LicencePublicKeyBlob` est a zero, aucune
licence n'est valide et l'ecran d'activation est **infranchissable** — l'exe
construit ne s'ouvre plus. Poser la cle publique AVANT de deployer :