1 votes

Comment pousser des gapps via adb sur un appareil rooté ?

J'ai un Samsung t355c. Un modèle chinois de la tablette normale qui n'a pas de gapps et pour autant que je sache un bootloader verrouillé. Il n'y a pas de récupération personnalisée pour elle. Fonctionne en 5.0.1

J'ai réussi à le Rooter en utilisant kingo et j'ai essayé de nombreuses façons de pousser les applications de google dans ce système. Je n'ai pas eu le temps de m'en rendre compte... je télécharge à nouveau la version originale.

La question est la suivante. Après l'avoir réparé et l'avoir réenraciné En utilisant adb avec le Root . Comment puis-je pousser les gapps

3voto

Milner Points 533

Je n'ai pas vraiment essayé, mais une approche possible consisterait à suivre les étapes d'une récupération personnalisée lors de l'installation ("flashage") de l'option de récupération. .zip qui se trouve dans le fichier META-INF/com/google/android/updater-script (après avoir extrait l'archive). Pour l'archive Kitkat GApps, cela se présente comme suit :

ui\_print("Installing files...");
run\_program("/sbin/busybox", "mount", "/system");
show\_progress(1, 15);
delete("/system/app/Provision.apk","/system/app/QuickSearchBox.apk","/system/app/priv-app/SetupWizard.apk","/system/app/priv-app/Velvet.apk","/system/app/Vending.apk","/system/app
package\_extract\_dir("system", "/system");
set\_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh");
package\_extract\_dir("optional", "/tmp");
package\_extract\_file("install-optional.sh", "/tmp/install-optional.sh");
set\_perm(0, 0, 0777, "/tmp/install-optional.sh");
run\_program("/tmp/install-optional.sh", "");
show\_progress(1, 15);
ui\_print("Cleaning up and setting metadata...");
set\_metadata\_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
set\_metadata\_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object\_r:system\_file:s0");
run\_program("/sbin/busybox", "umount", "/system");
ui\_print("Installation complete!");

Nous pouvons bien sûr ignorer les commentaires/la sortie de débogage, et ainsi aboutir essentiellement à ces étapes. I .zip quelque part sur votre appareil, et que vous vous trouvez dans un shell (terminal ou adb shell ) avec les permissions de la racine ( su ) pour commencer :

  1. mount -o remount,rw /system (ligne 2)
  2. si les fichiers énumérés à la ligne 4 existent : rm -f <file> pour chacun d'entre eux
  3. copier tout le contenu du fichier .zip du fichier system/ dans le répertoire /system (ligne 5)
  4. chmod 0755 /system/addon.d/70-gapps.sh (ligne 6)
  5. ( appliquer les 2 étapes précédentes aux lignes 7 à 9 )
  6. sh /tmp/install-optional.sh (ligne 10)

Il est maintenant un peu plus difficile (pour les débutants) d'interpréter la rubrique set_metadata_recursive commandes. Je l'expliquerai à la première (ligne 13) :

/system/addon.d doit être détenu par uid 0 et gid 0, les permissions sur les fichiers doivent être de 0755 (dmode est le mode répertoire, fmode le mode fichier), les attributs SELinux sont les suivants u:object_r:system_file:s0 . Vous avez peut-être remarqué que j'ai sauté deux colonnes : Je n'ai aucune idée de ce que le "capabilities", 0x0 Je ne peux donc pas l'expliquer (si quelqu'un le fait, merci de commenter). C'est donc ce que nous allons faire :

chown -R root:root /system/addon.d   # -R is recursive, root is user/group id 0
chmod -R 755 /system/addon.d         # as dmode and fmode are the same, we can do that
# at this place missing: SELinux properties. I've never dealt with those

Si, comme à la ligne 14, fmode et dmode sont différents, vous devrez également en tenir compte. Appliquez dmode comme ci-dessus, et faites-le suivre d'un find <dir> -type f -print0 | xargs chmod <mode> , remplaçant <dir> par le premier argument de set_metadata_recursive y <mode> par le mode f correspondant.

Enfin, remontez /system en lecture seule : mount -o remount,ro /system - ou simplement redémarrer (vous devrez le faire de toute façon), ce qui règle également ce problème.

Je n'ai pas abordé la question de SELinux par manque de connaissances. Cela fonctionnera très probablement sans - mais il serait bon de le faire pour plus de sécurité :)

1voto

James Wenton Points 63

Les étiquettes SElinux vous permettent de définir les paramètres à l'aide de la commande "chcon" et vous pouvez vérifier le résultat à l'aide de "ls -laZ".

Pour : set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0") ;

ce sera le cas : chcon "u:object_r:system_file:s0" /system/addon.d

Vous pouvez le vérifier en lançant : ls -laZ /system/addon.d

source pour l'utilisation de "chcon" : https://books.google.pl/books?id=AKbNBgAAQBAJ&pg=PA101&lpg=PA101&dq=%22u:object_r:system_file:s0%22&source=bl&ots=MbpesnKLkI&sig=ACfU3U2sJc-vYndDkUOk1Tru42hrcuPyUQ&hl=pl&sa=X&ved=2ahUKEwjqwqKiwZDnAhWiAxAIHZH8AGAQ6AEwAXoECAkQAQ#v=onepage&q=%22u%3Aobject_r%3Asystem_file%3As0%22&f=false

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X