La modification du ROM peut être grossièrement divisée en trois catégories : simplification, ajout et embellissement. Ici, nous discuterons principalement des deux aspects : simplification et ajout. Quant à l'embellissement, vous pouvez vous référer à d'autres articles.
1. Tout d'abord, voyons ce qu'il y a réellement dans le ROM :
Après avoir ouvert le package de flash avec WinRAR, vous pouvez voir plusieurs répertoires. Voici les répertoires pertinents et leurs descriptions :
dev_data/apps/ : Répertoire des fichiers APK des programmes système, équivalent à "/data/app_s/" après le flash. Les programmes ici ne peuvent pas être désinstallés après le flash.
dev_data/app/ : Répertoire des fichiers APK des programmes utilisateurs, équivalent à "/data/app/" après le flash. Les programmes ici peuvent être désinstallés après le flash (présent uniquement dans les versions postérieures au 28 octobre ; pour les versions précédentes, vous pouvez ajouter ce répertoire vous-même).
META-INF/com/google/android/ : Fichiers script de flash
system/etc/ : Contient certains fichiers de configuration
system/etc/permissions/ : Concerne les permissions des logiciels, certains correctifs nécessitent d'ajouter des fichiers dans ce répertoire
system/lib/ : Emplacement de stockage des fichiers de bibliothèque des programmes système
2. Ensuite, familiarisons-nous avec les fichiers script de flash
Lors de l'utilisation du recovery pour flasher, le processus de flash est contrôlé par des fichiers script.
Le fichier script se trouve dans le répertoire META-INF/com/google/android/ du package compressé et se nomme update-script. Il peut être ouvert avec un éditeur de texte.
Dans le fichier script, il existe quelques instructions qui nous intéressent :
(1) show_progress 0.1 0 : Affiche la barre de progression
Cette instruction est utilisée pour afficher la barre de progression du flash. Le 0,1 à l'avant indique la position de la barre de progression et peut être changé en une autre valeur (inférieure à 1). La signification du chiffre suivant n'est pas claire, en général, sauf pour la dernière instruction qui est 10, toutes les autres sont à 0. Dans certains ROM, lors du flash, la barre de progression est à peine à moitié lorsqu'il est indiqué que le flash est terminé. Vous pouvez essayer de remplacer la dernière ligne par show_progress 0.8 10, et la barre de progression ira jusqu'au bout.(2) Quelques mots-clés (A) "SYSTEM:" : représente le répertoire système après le flash = "/system/" (B) "INTERNAL:" : représente le répertoire /data après le flash = "/data/" (C) "PACKAGE:" : représente le répertoire racine du paquet compressé. Par exemple, "SYSTEM:etc/" équivaut au répertoire "/system/etc/" après le flash. "PACKAGE:dev_data" équivaut au répertoire dev_data dans le paquet compressé. (3) copy_dir PACKAGE:dev_data INTERNAL: copy_dir est utilisé pour copier des répertoires, le premier paramètre est le répertoire à copier, le deuxième est la destination. Par exemple, copy_dir PACKAGE:dev_data INTERNAL: sert à copier le contenu du répertoire dev_data du paquet ROM vers le répertoire "/data/" après le flash. (4) set_perm_recursive 0 2000 0755 0755 SYSTEM:bin sert à définir des permissions de répertoires ou de fichiers, la méthode d'utilisation est similaire à celle de Linux. (5) delete SYSTEM:app/YouTube.apk supprime un fichier. Cela est généralement inutile ; si vous voulez supprimer un fichier, il suffit de le faire directement. Voilà, vous pouvez maintenant enlever ou ajouter des programmes. Deuxième partie. Alléger les programmes système Alléger signifie en fait supprimer les programmes système. Les programmes dont nous n'avons pas besoin peuvent être supprimés. Les avantages de supprimer ces programmes sont : (1) Certains éléments inutiles apparaissent dans la liste des applications, ce qui est dérangeant. Si ces programmes sont trop nombreux, l'ouverture de la liste des applications peut être lente. (2) Certains programmes utilisent la mémoire au démarrage alors que nous n'en avons pas besoin. Par exemple, le filtrage des SMS, etc. (3) Certains programmes inclus dans la ROM d'origine ne nous plaisent pas et nous préférons d'autres, par exemple, ne pas aimer ADW et préférer utiliser LAUNCH PRO. La méthode pour alléger est simple : ouvrez le ROM avec WinRAR, allez dans dev_data apps, trouvez les programmes inutiles et supprimez-les. Quels programmes peuvent être allégés : cette question a été traitée dans de nombreux posts, vous pouvez faire une recherche, par exemple les posts suivants : Troisième partie. Ajouter des programmes Il y a deux méthodes pour ajouter des programmes : soit les ajouter comme programmes système, soit les ajouter comme programmes utilisateurs. L'avantage d'ajouter un programme comme programme système est sa rapidité d'exécution (c'est ce que disent tous, je n'ai pas vraiment ressenti cela), l'inconvénient est qu'il ne peut pas être directement désinstallé, il faut utiliser un outil comme RE pour le supprimer.En fait, utiliser RE pour supprimer directement les fichiers APK des programmes système ne les désinstalle pas complètement. Si vous ne me croyez pas, vous pouvez jeter un œil au répertoire /data/data/, chaque programme correspond à un objectif, dont le nom de répertoire est le même que celui du package du programme (ce n'est pas le XXX de XXX.APK).
1. Ajouter des programmes système : Le moyen le plus simple d'ajouter des programmes système : (1) Ouvrez le fichier ROM compressé avec WinRAR, allez dans le répertoire "dev_data/app_s", et copiez-y le fichier APK du programme à ajouter. (2) Ouvrez le fichier APK à ajouter avec WinRAR et vérifiez si le répertoire “lib/armeabi” contient des fichiers se terminant par .so. Ce sont des fichiers de bibliothèque nécessaires au fonctionnement du programme. S'il y a de tels fichiers, copiez-les dans le répertoire "system/lib/" du fichier compressé. Certains utilisateurs ont constaté que les programmes ajoutés lors de la modification du ROM ne fonctionnent pas, cela se produit généralement dans ce cas. Par exemple, la nouvelle version de Google Pinyin Input Method.
2. Ajouter des programmes utilisateur : Ajouter des programmes utilisateur est un peu plus compliqué, mais après le flashage, ils peuvent être désinstallés directement. Si vous utilisez un ROM publié après le 28 octobre, il suffit de glisser l'APK dans le répertoire "dev_data/app/". Cette étape est simple ; le problème survient lorsque l'APK contient des fichiers de bibliothèque. La méthode simple est la même que l'étape 2 pour l'ajout de programmes système. L'inconvénient de cette méthode est que lors de la désinstallation, les fichiers de bibliothèque resteront dans "system/lib/". Heureusement, la plupart des programmes n'ont pas de fichiers de bibliothèque, et ceux qui en ont ne posent pas de problème après leur maintien. Une méthode plus avancée consiste à utiliser un script d'installation.
Pour les ROM publiés avant le 28 octobre, il n'y a pas de répertoire app dans "dev_data/". Vous pouvez le créer vous-même (clic droit dans WinRAR, sélectionner Créer un nouveau dossier). Après avoir créé le répertoire, il faut définir les propriétés du répertoire dans le script de flashage :
Dans le script de flashage, trouvez cette section :
copy_dir PACKAGE:dev_data INTERNAL: set_perm 1000 1000 0771 INTERNAL:app_s
Et ajoutez cette ligne après :
set_perm 1000 1000 0771 INTERNAL:app
La première ligne copie tout le contenu du répertoire dev_data du ROM vers /data. La deuxième ligne définit les permissions de app_s. La ligne que nous ajoutons définit les permissions de app.
Ensuite, vous pouvez corriger et ajuster le ROM.
Ensuite, vous pouvez corriger et ajuster le ROM.
Quatre.Le script firstboot permet de configurer le ROM de manière avancée, on peut utiliser le script firstboot.sh. Le script firstboot.sh se trouve dans le répertoire dev_data du ROM. Le code du script s'exécute lors du premier démarrage après le flashage, et il permet de configurer le système, d'installer des APK, etc. Voici un extrait du script dans liudidi1028rom : # Paramètres par défaut du système /system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('trackball_wake_screen', 1);" /system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('trackball_unlock_screen', 1);" /system/xbin/sqlite3 "INSERT INTO system (name, value) VALUES ('lock_home_in_memory', 1);" Je pense que tout le monde peut deviner à quoi servent ces trois lignes de code. Quant à la façon dont le script est écrit, ne me demandez pas, je ne la connais pas non plus, on peut l'étudier ensemble. Dans le script, on peut utiliser des commandes comme rm, mv, qui permettent de remplacer directement certains fichiers de configuration. Par exemple : busybox rm /system/etc/quelque_fichier busybox mv /system/etc/quelque_fichier Bien sûr, si vous modifiez des fichiers système, il faut d'abord obtenir les permissions : busybox mount -o remount,rw /system Puis les remettre en lecture seule : busybox mount -o remount,ro /system firstboot.sh est très utile, ce serait génial si quelqu'un pouvait écrire un tutoriel pour débutants !
[Tutoriel de création/modification de ROM] Créez votre propre ROM (1)
Réponses (1)
Trop long, je ne comprends pas
— Toutes les réponses chargées —