2 votes

Comment lancer la commande `chmod` au démarrage sur Android 10 ?

J'ai un appareil Android 10 dont le bootloader est déverrouillé. J'ai téléchargé son firmware, je l'ai modifié et j'ai obtenu l'adb shell enraciné dans le recovery. Voici les étapes à suivre :

  1. Télécharger AIK

  2. Extraire le fichier recovery.img et le fichier ramdisk/default.prop modifié comme suit :

    ro.secure=0 ro.adb.secure=0 security.perf_harden=0 ro.debuggable=1 persist.sys.usb.config=adb,mtp

  3. Remplacer split_img/recovery.img-zImage par un noyau permissif (construit à partir des sources du noyau)

  4. Reconditionnez-le et flashez-le sur l'appareil.

  5. Redémarrez en mode récupération et exécutez adb shell. Il sera enraciné.

Je souhaite ajouter un simple chmod 666 /dev/diag et j'ai monté le système avec l'option stock recovery mount system, puis j'ai essayé de faire ce qui suit :

  1. Écrire la commande chmod à la fin du fichier init.rc.
  2. J'ai essayé de créer de nouveaux scripts rc dans le dossier /system/etc/init/. Le nouveau script rc ne contient que la commande chmod.
  3. J'ai essayé d'ajouter (par exemple echo "chmod 666 /dev/diag" >> /system/etc/init/cameraserver.rc) la commande chmod dans d'autres fichiers rc du dossier /system/etc/init/.

Tous n'ont pas été en mesure de modifier les autorisations requises. init.rc les modifications sont perdues après le redémarrage. D'autres fichiers/modifications persistent après le redémarrage mais ne modifient pas l'autorisation du port diag.

Par contre, j'ai pu créer une application système avec des changements dans le dossier /system/app/.

Y a-t-il autre chose que je puisse essayer pour exécuter la commande chmod après le démarrage du téléphone ?

2voto

Irfan Latif Points 16863

echo "chmod 666 /dev/diag" >> /system/etc/init/cameraserver.rc ne fonctionnera pas. Vous devez fournir un init déclencher également. Par exemple :

~# echo "on boot" >/etc/init/dev_diag_chmod.rc
~# echo "    chmod 666 /dev/diag" >>/etc/init/dev_diag_chmod.rc
~# chown 0.0 /etc/init/dev_diag_chmod.rc
~# chmod 0644 /etc/init/dev_diag_chmod.rc
~# chcon u:object_r:system_file:s0 /etc/init/dev_diag_chmod.rc

Mais une approche encore plus simple consiste à modifier le fichier ueventd.rc (qui est lu et exécuté par le gestionnaire d'appareils d'Android) fourni par le fournisseur (depuis le /dev/diag est une interface spécifique au matériel) qui crée le nœud de l'appareil. Remplacez la déclaration pertinente dans ce fichier pour définir le mode de permission, le propriétaire et le groupe que vous souhaitez. Par exemple, vous pouvez remplacer :

/dev/diag    0660    system    system

Avec :

/dev/diag    0666    system    system

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