1 votes

Comment le système-as-Root est-il monté dans Android 9 ?

Dans Android 9, system.img consiste en un système et un disque RAM. Donc le noyau va monter system.img directement et mettre en œuvre init programme. Suivant, init analysera init.rc et monter les partitions restantes en fonction de fstab fichier. Mais, il y a quelque chose dans fstab que je ne comprends pas :

/dev/block/by-name/system      /      ext4    ro,barrier=1

Ici, le système est monté en tant que Root dans fstab fichier. Je pensais que system.img est monté avant d'exécuter init mais ici, system.img est à nouveau évoquée. Quelqu'un peut-il m'expliquer cela ?

0voto

Irfan Latif Points 16863

init analysera init.rc et monter les partitions restantes en fonction de fstab fichier.

Toutes les partitions dans fstab sont montés par init au démarrage. Exemptions incluent les partitions gérées par vold et ceux qui ne sont destinés qu'au mode de récupération, aux partitions brutes (non montables) et à la partition racine.

Il y a quelque chose dans fstab que je ne comprends pas :

/dev/block/by-name/system      /      ext4    ro,barrier=1

Ce fstab est incomplète car elle ne comprend pas fs_mgr drapeaux selon format standard . L'entrée complète devrait être comme :

/dev/block/by-name/system    /    ext4    ro,barrier=1    wait,recoveryonly

Sur les appareils Treble (Android 8 et 9) "les dispositifs peuvent spécifier Entrées fstab pour les partitions montées précocement en utilisant des superpositions d'arbres de dispositifs" . Une explication simple peut être trouvée ici . Cependant "Dans Android 10 et plus, les appareils doivent spécifier fstab pour les partitions montées en avance en utilisant un fstab fichier" y "doit placer le fstab dans le fichier ramdisk et dans le vendor partition" .

La DTB est généralement ajoutée sous forme de blob au binaire du noyau et à la base de données. fstab sont exposés dans procfs :

~# cat /proc/device-tree/firmware/android/fstab/*/name
system
vendor

Ainsi, sur les appareils où fstab entrées pour les partitions system , vendor y odm sont dans le Device Tree Blob, init ne prend aucune action pour ces partitions sur mount_all parce que fs_mgr Les drapeaux comprennent recoveryonly . Vous pouvez commenter ou supprimer l'entrée et l'appareil devrait démarrer normalement.

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