J'ai enfin trouvé une solution en modifiant le texte /data/data/com.android.providers.settings/databases/settings.db
via sqlite3. Juste adb pull
ce fichier sur votre ordinateur, si vous utilisez la récupération de stock vous devez monter la partition userdata manuellement, dans ce cas voir Montage de récupération Android ADB Shell pour des indices. Vous ne pouvez pas non plus tirer le fichier directement, mais le copier à l'intérieur. adb shell
sur votre carte SD ou un système de fichiers intermédiaire. Par exemple. busybox cp sett* /sdcard
Pour se débarrasser de la configuration initiale :
update global set value=1 where name='device_provisioned';
update secure set value=1 where name='user_setup_complete';
insert into secure (name,value) VALUES ('device_provisioned','1');
Oui, le device_provisioned doit être présent dans les deux tables. Cependant, sur le JB stock, il n'y avait pas de table globale, donc vous n'avez pas besoin de vous en occuper et la table sécurisée manque certains enregistrements que nous mettons à jour ici, donc ceux-ci doivent être insérés à la place. Sur le JB de base, avant d'éditer le settings.db, exécutez PRAGMA wal_checkpoint
y PRAGMA journal_mode = DELETE
décrite ici : https://stackoverflow.com/a/21258892/881375 Sinon, les mises à jour des lignes existantes ne seront pas prises en compte car Android fera marche arrière au redémarrage. Pour CyanOgenMod 11, il suffit de supprimer le fichier settings.db-journal et tout devrait être OK.
Il était nécessaire après avoir repoussé le fichier settings.db dans le dossier de l'appareil pour
chmod 660 settings.db
chown system:system settings.db
dans cet ordre, parce que chmod peut remettre le propriétaire et le groupe à Root
La souris USB OTG ne fonctionne toujours pas malheureusement, donc je suppose que je dois obtenir l'accès à adb de toute façon.
Pour activer le débogage USB (ADB) :
setprop persist.service.adb.enable 1 ('setprop persist.sys.usb.config mtp,adb' if needed)
settings.db :
update secure set value=5037 where name='adb_port';
update global set value=1 where name='adb_enabled';
Après le démarrage, une boîte de dialogue pour confirmer l'empreinte digitale du PC apparaît. Pour éviter cela, récupérez votre adbkey.pub (sous linux, il peut être situé dans ~/.Android) :
adb push adbkey.pub /data/misc/adb/adbkey.pub
cat adbkey.pub >> adb_keys
Après tout cela, vous pouvez input tap|swipe|text
tout ce qui permet de contrôler votre téléphone et d'accéder à une souris/un clavier Bluetooth ou OTG, etc. J'espère que cela vous aidera. L'injection d'empreinte digitale est nécessaire pour Android 4.2.2+.
Merci à xda-developers et Android issues with adb security at code.google.com.