4 votes

Pourquoi les sauvegardes TRWP Nandroid des partitions système et fournisseur seraient-elles différentes entre les sauvegardes ?

Pour information, je viens de récupérer un Xiaomi Mi 9 version Global et j'exécute la dernière ROM MIUI Pure hebdomadaire de Xiaomi.eu (si cela a de l'importance, les derniers hebdomadaires de Xiaomi.eu pour le Mi 9 sont basés sur Android 10).

J'ai commencé à faire des sauvegardes complètes en utilisant TWRP et j'ai remarqué quelque chose d'étrange. Pour référence, ces sauvegardes ont la compression désactivée et aucun cryptage pour essayer d'exclure toute variable.

Lorsque je vérifie les hachages sha2 des différentes partitions, j'ai remarqué que toutes les différentes partitions (démarrage, récupération, modem, efs, etc.) ont le même hachage sha2 entre les sauvegardes (ce qui signifie que les images sont exactement les mêmes). Cependant, même d'une nuit à l'autre, ou même d'un démarrage à l'autre comme je l'ai testé aujourd'hui, les hachages des sauvegardes des partitions système et fournisseur sont différents. Je n'ai pas installé de modules ou de noyaux système personnalisés qui pourraient modifier ces partitions, bien que je sois enraciné avec Magisk.

J'ai utilisé le shell adb pour parcourir le système et les partitions des vendeurs et toutes les dates des dossiers et des fichiers sont soit "1969-12-31" (ce qui signifie que la date est 0 puisque c'est le début du "temps unix" si vous prenez en compte mon fuseau horaire) ou "2019-09-06" qui est probablement la date à laquelle la ROM ou sa ROM de base a été créée (la ROM Xiaomi originale à partir de laquelle ils ont créé la version Xiaomi.eu). J'ai même utilisé la commande find à partir d'un shell adb pour rechercher à la fois le système et les partitions du vendeur pour tout fichier mis à jour (tout fichier avec une date plus récente que "2019-09-06") et il n'y en a pas.

Ma question est donc la suivante : si je n'ai pas flashé de nouvelle ROM ou installé quoi que ce soit dans la partition système, pourquoi deux sauvegardes seraient-elles différentes ?

Je pensais que seule la partition de données changerait au fur et à mesure que j'utiliserais le téléphone. Je pensais que puisque les images système et fournisseur sont la ROM elle-même, elles ne devraient jamais changer à moins que je change de ROM. J'avais l'impression que même les paramètres du système sont stockés sur la partition de données parce que l'exécution d'une réinitialisation d'usine efface essentiellement cette partition ... donc je ne vois pas pourquoi le système et surtout les partitions du vendeur devrait jamais changer à moins que je flash spécifiquement une ROM différente ou mettre à jour la ROM qui serait évidemment écrire à ces partitions (ou au moins la partition du système)

Y a-t-il une sorte de fichiers ou de dossiers générés automatiquement dans le système et les partitions des fournisseurs qui changent légèrement à chaque démarrage ou autre ?

J'aimerais juste mieux comprendre afin de savoir si, par exemple, il est possible de faire des sauvegardes régulières de la partition de données et de ne sauvegarder le système et le fournisseur que lorsque je fais une nouvelle mise à jour de la ROM.

J'espère que quelqu'un ayant plus d'expérience des ROM Android pourra m'éclairer sur ce point.

2voto

Irfan Latif Points 16863

La réponse à votre question est dm-verity :

La fonction dm-verity vous permet d'examiner un périphérique de bloc, la couche de stockage sous-jacente du système de fichiers, et de déterminer s'il correspond à la configuration attendue. Pour ce faire, elle utilise un arbre de hachage cryptographique. Pour chaque bloc (généralement 4k), il y a un hachage SHA256.

Alors /system y /vendor Les partitions sont toujours montées en lecture seule parce que le montage en lecture seule entraîne une modification des valeurs de hachage de la partition/du système de fichiers (au moins certaines valeurs de hachage). inodes appartenant à la structure du système de fichiers peut changer même si vous ne touchez pas à un fichier), brisant ainsi la fonction de sécurité. Pour pouvoir les modifier, il faut désactiver la fonction dm-verity ce qui doit être votre cas.

TWRP crée des sauvegardes de deux manières. boot , recovery etc. sont simplement jetés ( dd ) dans son ensemble, donc leurs hachages ne changent pas car ce ne sont pas des systèmes de fichiers montables. /system y /vendor sont soit jetés en tant qu'images pour conserver dm-verity comme indiqué ci-dessus. Ou encore un tar est créée pour que la taille de la sauvegarde soit minimale. Dans le second cas, même si le système de fichiers est inchangé, un nouveau fichier d'archive est créé à chaque fois que vous effectuez la sauvegarde. Si les fichiers ne sont pas modifiés et sont lus/écrits par l'utilitaire d'archivage dans le même ordre, en utilisant les mêmes options/paramètres à chaque fois, alors les archives créées devraient être identiques. Mais même un facteur mineur, par exemple compression peut provoquer une valeur de hachage différente à chaque fois.

Donc vous devez avoir dm-verity désactivé et, par conséquent, vous continuerez à recevoir des hachages modifiés. Mais les contenus ne changent pas (si vous ne changez pas vous-même ou si Magisk/GApps ne met pas un certain addon.d ), donc une sauvegarde régulière des deux partitions n'est pas nécessaire. En fait, seulement /data la sauvegarde est suffisante, boot , /system , /vendor font déjà partie des zips flashables.

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