1 votes

Comment démarrer un appareil en tant que système rooté ?

J'ai un appareil Samsung S10 5G qui est en fait un system-as-root appareil. Je l'ai enraciné en suivant les instructions données. aquí .

Comme le system-as-root Les appareils n'ont pas ramdisk en boot.img mais en recovery.img donc, je dois toujours démarrer l'appareil avec une combinaison de récupération pour obtenir l'accès Root.

Y a-t-il un moyen d'obtenir la racine lors d'un redémarrage normal ?

J'ai une image ROM complète de l'appareil, donc je pense qu'il doit y avoir un moyen. S'il vous plaît partager vos pensées.

4voto

Irfan Latif Points 16863

Si vous passez par Comment fonctionne Magisk y Comment rooter manuellement un téléphone il vous serait facile de comprendre pourquoi il est impossible d'atteindre ce que vous recherchez.

init est le tout premier processus lancé par le noyau, qui, à son stade initial, définit SELinux enforcing (si ce n'est pas déjà enforcing ). Avant cela, nous devons modifier la politique SELinux afin qu'elle ne restreigne pas le démon Root ( magiskd ) de fonctionner. Aussi init.rc doit être corrigé pour injecter magiskd service.

Une option simple consiste à corriger /sepolicy et modifier /init.rc lors de l'enracinement de l'appareil et de sauvegarder les fichiers sur l'appareil. Mais sur system-as-root les appareils sur lesquels se trouvent les deux fichiers system.img (et éventuellement vendor.img ), pas sur boot.img . Donc les modifier casserait " sans système "et d'autres éléments connexes, en particulier dm-verity et les OTAs.

Une autre option consiste à exécuter un processus avant même que init qui corrige la politique SELinux et change init.rc sur la route. Et le moyen le plus simple d'y parvenir est de remplacer les piles d'origine par des piles de rechange. init avec Magisk init pour que le noyau exécute ce dernier. Cependant, sur les dispositifs SAR init est également sur system.img donc on ne peut pas le remplacer. Mais nous pouvons toujours démarrer en mode de récupération qui a un ramdisk où le Magisk's init peut être placé et exécuté avant tout autre processus. Sur A/B Récupération des dispositifs SAR ramdisk est en boot.img Ainsi, Magisk démarre toujours en mode de récupération en forçant le noyau à ignorer l'information. skip_initramfs Paramètre cmdline reçu du chargeur de démarrage.

Y a-t-il un moyen d'obtenir la racine lors d'un redémarrage normal ?

Sur dispositifs SAR non-A/B (comme le vôtre) il n'y a pas ramdisk en boot.img Ainsi, la seule option pour conserver l'approche sans système est de placer Magisk init en voie de guérison ramdisk en recovery la partition, et toujours démarrer en mode de récupération . A partir de là system.img est monté à /system_root par Magisk init , le contenu de ramdisk sont ensuite copiés dans / nettoyage de tout ce qui existait auparavant, les fichiers sont ajoutés / modifiés dans rootfs / , /system_root/system est monté en liaison avec /system et enfin [/system]/init est exécuté pour un démarrage normal.

Cependant, les choses ont changé avec Android 10, maintenant system.img est monté à / mais les fichiers à ajouter / modifier comme /init.rc y /sbin sont superposés à des montages de reliure en tant que a tweeté par le développeur Magisk.

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