Il y a une image du fournisseur dans mon appareil que je veux modifier (déballer/monter, faire des changements, emballer/monter).
Mon but est de mettre à jour boot.img avec mon nouveau noyau (dans un appareil enraciné).
Malheureusement, cela ne fonctionne pas à cause de l'incompatibilité des versions entre un nouveau noyau compilé (ma compilation) et les modules du noyau précédent stockés dans vendor.img.
Comme je le vois, je dois mettre à jour les anciens exécutables "ko" stockés dans vendor.img dans mon produit.
La première étape est de faire "dd" depuis mon appareil et "adb pull" vers mon environnement de construction. Lorsque j'ai essayé de faire un montage sur vendor.img, j'ai découvert qu'il ne fonctionnait pas en raison de l'attribut "shared_blockes" qui bloque le montage en tant que "RW" (dmesg a écrit : "...unsupported optional features (4000)"), Pour le résoudre, exécuter la commande suivante
e2fsck -y -E unshare_blocks vendor.img
La désactivation de la fonction "share_blocks" m'a empêché de faire le montage en tant que RW, bien sûr le montage RW fonctionne correctement !
Dans la dernière phase, j'ai essayé de remplacer les fichiers dans le système de fichiers du vendeur et j'ai découvert un autre défi sur mon chemin, malheureusement, il y avait un problème d'espace limité dans le système de fichiers,
Par exemple : Dans le cas où je veux remplacer le module du noyau appelé "abc.ko", supprimer le fichier ne montre pas de nouvel espace libre dans le système de fichiers ! Dans ce cas, je ne peux pas mettre à jour les anciens modules du noyau avec les nouveaux (compatibles avec le nouveau noyau compilé), Bien sûr, l'exécution de "df -h ." n'a pas retourné d'espace libre et 100% utilisé, Quelqu'un a une idée de ce que je dois faire ?
Merci,