La raison pour laquelle il ne fonctionne pas correctement est la suivante :
En init.rc
réside dans le RAMDisk attaché à l'image de démarrage.
D'où la init.rc
qui a été modifié et poussé à travers est maintenant écrasé par le script de l'image de démarrage lors du redémarrage - les changements sont effectivement perdus !
Vous devez extraire l'image de démarrage, en utilisant chaque image de démarrage a le noyau et le RAMDisk. Les outils disponibles pour faire cela peuvent être trouvés aquí .
Extraction de
En invoquant le script split_bootimg.pl
sur une image de démarrage, il recréera ce qui suit :
- boot.kernel
- boot.ramdisk.gz
Les deux fichiers sont évidemment explicites. Pour extraire le ramdisk, créez un répertoire appelé RAMDisk et à partir de ce répertoire, invoquez ceci : gzip -dc | cpio -i
pour recréer la structure de répertoire utilisée dans le RAMDisk qui est basculé sur le système de fichier actif au démarrage. Le fichier qui contient les informations pertinentes est le suivant init.rc
. Vous pouvez maintenant le modifier à votre guise.
Remettre les choses en place
Remontez d'un niveau de répertoire, et faites ceci - mkbootfs ***RAMDisk*** | gzip > my_custom_ramdisk.gz
.
Ensuite, pour "attacher" le noyau d'origine à l'image de démarrage, procédez comme suit : mkbootimg -base 0x.... -kernel boot.kernel -ramdisk my_custom_ramdisk.gz -o my_custom_boot.img
.
A ce stade, une image d'amorçage a été construite, et cette image d'amorçage doit maintenant être flashée par l'intermédiaire de fastboot flash boot my_custom_boot.img
.
TL;DR
Les modifications sont perdues au redémarrage car le script n'est pas correctement édité, ce qui a nécessité d'extraire l'image de démarrage, de la modifier et de la ré-emballer. Une fois le paquetage refait et l'image de démarrage réinitialisée, les changements seront permanents.
Cette opération est effectuée chaque fois que des modifications sont nécessaires.