2 votes

Pourquoi les fichiers/répertoires du système de fichiers racine d'Android ne changent pas entre les différentes mises à jour de la version ?

J'ai comparé deux appareils, l'un fonctionnant sous Android v5.1.1 et l'autre v9.0. J'ai donc remarqué que les fichiers sous /proc sont les mêmes dans les deux cas.
Quelqu'un peut-il expliquer pourquoi il n'y a pas de différence alors que les OEM sont différents et que les versions du SDK sont aux antipodes ?

0 votes

Quels sont les changements attendus en fonction des différentes versions du SDK ?

2voto

Irfan Latif Points 16863

Le système d'exploitation Android comporte deux parties : le noyau et l'espace utilisateur (binaires, bibliothèques, configuration, etc.). Le noyau d'Android s'inspire de Linux, est légèrement modifié et fait rarement l'objet de mises à jour majeures au fil des ans (à l'exception des correctifs de sécurité critiques), tandis que la seconde partie fait l'objet de modifications et de mises à jour fréquentes, en particulier avec les nouvelles versions.

があります。 procfs est le système de fichiers virtuel du noyau Linux qui :

contient (entre autres choses) un sous-répertoire pour chaque processus en cours d'exécution sur le système, qui est nommé d'après l'ID du processus (PID).

Il n'est donc pas directement affecté par les changements apportés à AOSP par les OEM ou Google lui-même.

Comme Android est basé sur Linux, la hiérarchie de son système de fichiers ressemble également aux distributions Linux. Il y a donc peu de chances qu'elle soit modifiée lors des mises à jour de la version d'Android. Ce qu'Android (Google ou OEM) change réside principalement dans /system y /vendor partitions. Les bibliothèques (natives ou java), les fichiers exécutables et les fichiers de configuration peuvent éventuellement changer, mais la plupart des changements liés à l'interface utilisateur graphique ou aux API internes d'Android se trouvent uniquement dans le code source et ne se reflètent pas au niveau du système de fichiers.

Android est ROOTFS :

Le système de fichiers racine d'Android est extrait de Disque RAM qui fait partie de la partition de démarrage. boot.img qui contient également le binaire du noyau est construit avec la ROM (Android OS pour un appareil spécifique). À partir d'Android Pie pour les appareils non-A/B, le contenu du disque RAM est déplacé vers le disque ROM. /system partition, en faisant system.img essentiellement le système de fichiers racine. Voir Système en tant que racine .

  • Un fichier important dans le répertoire racine est /init binaire exécutable qui est le tout premier processus lancé par le noyau. C'est le superviseur de tous les processus de démarrage et d'arrêt ultérieurs. /*.rc sont ses fichiers de configuration.
  • D'autres binaires nécessaires sont inclus dans /sbin .
  • /sepolicy est le SELinux qui est chargé avant le démarrage de tous les services et processus au démarrage.
  • /cache , /data , /dsp , /firmware , /persist , /odm , /system y /vendor sont des points de montage où sont montés différents périphériques de bloc. Les trois derniers contiennent la plupart des éléments du système d'exploitation Android tandis que /data contient les paramètres et les médias de l'utilisateur. /system a une hiérarchie partielle de rootfs d'une distro Linux standard. /cache contient des fichiers temporaires. /dsp (répertoire ou lien symbolique vers /vendor/dsp ) et /firmware (répertoire ou lien symbolique vers /vendor/firmware_mnt ) contiennent certains microprogrammes en lecture seule liés au SoC (Qualcomm) et au /persist (répertoire ou lien symbolique vers /mnt/vendor/persist ) a des configurations qui sont rarement modifiées.
  • /config , /mnt y /storage sont également des points de montage de systèmes de fichiers virtuels pour gérer le montage des cartes SD et du stockage externe. Détails ici .
  • /proc est un pseudo-système de fichiers comme indiqué ci-dessus. /sys est également un système de fichiers similaire. /dev est également un système de fichiers virtuels ( tmpfs ) qui est alimenté par sysfs et contient des interfaces vers tous les dispositifs disponibles.
  • /acct est l'un des programmes d'Android control group pour contrôler l'équilibrage de la charge des processeurs. Autres cgroups sont montés sur /dev/memcg , /dev/cpuctl y /dev/cpuset pour contrôler l'utilisation des ressources matérielles.
  • /root est le traditionnel home du répertoire root utilisateur, non utilisé sur Android.
  • /default.prop est un fichier ou un lien symbolique vers /etc/default.prop qui contient certains des défauts Propriétés du système Android .
  • Pour conserver la compatibilité, /sdcard est un lien symbolique vers /storage/emulated/0 , /bin まで /system/bin y d まで /sys/kernel/debug . Le répertoire de configuration traditionnel de Linux /etc est un lien symbolique vers /system/etc .

La quasi-totalité de cette hiérarchie de systèmes de fichiers est l'épine dorsale du système d'exploitation Android et il y a très peu de chances qu'elle soit largement affectée par les changements internes d'Android qui se produisent dans les services/daemons natifs ou le cadre basé sur Java.

Pour plus de détails : PARTITIONS ET SYSTÈMES DE FILES DES DISPOSITIFS Android

0 votes

Merci beaucoup pour votre réponse détaillée. Je ne sais pas si vous pouvez m'aider à extraire l'img de démarrage et d'autres images de la partition de démarrage.... J'ai essayé cette méthode (dd if and of) mais je suis un peu perdu entre snapdragon et mediatek, mon appareil est basé sur SD.... Merci d'avance ;)

0 votes

C'est hors sujet. Une commande simple serait dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot.img . De nombreux guides sont disponibles. Voir aussi cette y cette par exemple.

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