R
ren41200
Membre
- Inscrit
- 17 Février 2012
- Messages
- 2 414
- Points
- 36
- #1
Guide pour créer sa propre ROM
Par ren41200
Attention ce guide est fait simplement pour comprendre la marche
à suivre en théorie
il n'est pas récent et sera mis à jour prochainement
il me sert de base pour faire un tuto complet à venir
cette méthode m'a permis de comprendre une partie du développement de ROM
c' est pourquoi je la partage avec vous
les outils utilisé depuis sont pour certains différents
à suivre en théorie
il n'est pas récent et sera mis à jour prochainement
il me sert de base pour faire un tuto complet à venir
cette méthode m'a permis de comprendre une partie du développement de ROM
c' est pourquoi je la partage avec vous
les outils utilisé depuis sont pour certains différents
faire votre propre CustomROM
Avant de commencer, il doit être dit : Que ce que vous trouverez ici est essentiellement une compilation de plusieurs dizaines de guides disponibles sur le web. Le but était de créer un guide tous les outils et toutes les étapes avancées, qui sont nécessaires pour faire de votre propre ROM Android. Ce guide a été testé sur un HTC. D'autres dispositifs peuvent suivre le même chemin, mais vérifiez d'abord. Ce guide utilise des commandes Linux et les outils et demande que vous ayez accès à un PC fonctionnant sous Linux, et les connaissances de base Linux. Si à n'importe quel stade vous ne comprenez pas ce texte est, arrêter. Je ne prend aucune responsabilitée pour les appareils endommagés ou autrement brisé à cause de la suite de ce guide. Bien que mince, il ya toujours une chance de votre appareil sera briqué il deviendra inutile après cela. Vous êtes averti.
Comme certaines personnes ne le savent pas, nous allons commencer par expliquer ce qu'est une Rom (ou plutôt une image ROM) en réalité. Dans le cas de dispositifs Android est une image ROM est une représentation binaire d'un ensemble de "disque", avec ses systèmes de tables de partitions, des fichiers et tous les fichiers. J'ai mis "disque" entre guillemets, car il n'y a pas de lecteurs de disques dans les smartphones. Ceux-ci étaient remplacés par des puces de mémoire flash.
officiel (HTC) mises à jour ROM sont libérés comme Ruus (RUU = ROM Update Utility), lequel vous exécutez sur votre (Windows) PC pour obtenir le dispositif mis à jour automatiquement. Cependant pratique, Ruus ont un défaut majeur dans le contexte de personnalisation ROM: ils ne supportent pas tout. . Heureusement quelques-uns des grands cerveaux de la liberté dans la collectivité Android Ruus ré-empaquetés dans des fichiers de mise à jour signée, ce qui à leur tour permettront quelle qu'en soit la personnalisation ROM que vous pouvez imaginer la "mise à jour signé" l'image ROM de type contient toujours les éléments suivants:
boot.img - Ce fichier est une représentation binaire du système de fichiers racine de l'appareil. Il contient le noyau du système et tous les fichiers nécessaires pour démarrer la partie centrale d'Android
système - Il s'agit d'un répertoire contenant tous les fichiers trouvés dans / système sur un appareil fonctionnant sous Android. Il a exactement la même disposition.
META-INF - il s'agit du dossier contenant le manifeste et mise à jour du script. Le manifeste est un fichier qui répertorie tous les fichiers inclus dans la mise à jour, avec leurs SHA1 checksums. Le script mise à jour est utilisée pour appliquer la mise à jour sur un appareil
Ce guide utilise une "mise à jour signé".
Ce sont les conditions préalables à ce guide:
Votre appareil doit être enraciné et doit être en mesure d'utiliser "fastboot USB" ou avoir une image de recovery personnalisée flashé . Si votre appareil n'est pas enracinée, vous êtes coincé avec l'aide Ruus.
Linux - Soit sur une machine physique ou dans une VM qui prend en charge USB. Toute distribution récente fera l'affaire. Ubuntu
Android SDK - Vous devez avoir ceci installé et configuré avant de continuer. Ce sont les outils dont vous aurez besoin pour construire:
adb
fastboot
mkbootfs
mkbootimg
Sun Java JRE - Si vous avez configuré le SDK Android vous-même, vous avez probablement le JDK . Si non, l'obtenir ou obtenir les outils pour les fichiers binaires (ci-dessous), et Java JRE .
split_bootimg.pl - Il s'agit d'un Perl script qui divise le boot.img fichier dans une partie du noyau et ramdisk.
Téléchargez-le sur android-dls.com .
zip, gzip, cpio, patch - Ce sont les services publics dont nous aurons besoin de travailler avec l'image mise à jour. Toute distribution Linux raisonnable entre eux a par défaut. Si ce n'est pas, en avoir un qui le fait.
Télécharger, compiler et installer toutes les conditions préalables avant de poursuivre que cette étape ne sera pas couvert dans ce guide. Si vous ne savez pas comment faire cela, s'en tenir à la ROM officielles. Sinon, vous pouvez télécharger tous les fichiers binaires (à l'exception de Java!) À partir de ce serveur . Sous Linux, vous pouvez également exécuter les commandes suivantes pour automatiser la configuration de l'environnement initial:
mkdir-p ~ / android / rom
cd ~ / android / rom
wget-q-O . / prep
[-F. / Prep] && bash. / Prep path_to_update_zip
Où path_to_update_zipest le chemin complet vers le ROM source d'conditionnée en "update.zip", par exemple: ~ / download / modaco_update.zip . En utilisant cette méthode, vous vous épargnerez des travaux et sera en mesure de sauter directement à l'étape 4 .
Etape 0 - structure des répertoires de travail
Une fois que vous avez toutes les conditions préalables en place, créer un répertoire de travail en vertu de / usr / src / android et à l'intérieur de créer plus de deux répertoires mises à jour et des outils . Définissez votre variable d'environnement WKD à / usr / src / android / mises à jour - ce sera le cas tout le travail est fait. Ensuite, ajoutez / usr / src / android / outils à votre PATH et placez tous les fichiers binaires de l'outil mentionné dans des conditions préalables ici (juste les fichiers binaires!). L'ensemble du processus devrait ressembler à ceci:
mkdir-p / usr / src / android / {mises à jour, des outils}
l'exportation WKD = / usr / src / android / mises à jour
export PATH = $ PATH :/ usr / src / android / tools
Étape 1 - Obtenir un ROM "signé mise à jour" de type
Paul de MoDaCo , mieux connu pour son "ROM MoDaCo personnalisé" sur mesure pour HTC. La liste mise à jour, avec des liens, c'est le android.modaco.com . Ce guide utilise le « HTC Générique 2.73.405.38 "ROM. Télécharger le fichier dans WKD comme ceci:
wget-O url_to_ROM_file $ WKD / update-source.zip
Une fois téléchargé, décompressez le fichier:
cd $ WKD
mkdir src cd! $
décompresser .. / update-source.zip
Étape 2 - Répartition de l'image de démarrage
Si vous ne souhaitez pas modifier l'image de démarrage, passez à l'étape 6. Sinon lisez la suite. Avant l'image de démarrage peut être modifié, nous devons le décompresser à partir du fichier boot.img dans quelque chose que nous pouvons travailler avec. Ceci est fait en utilisant le slipt_bootimg.pl script, comme ceci:
mkdir-p $ WKD / dst / boot
cd! $
split_bootimg.pl $ WKD / src / boot.img
Vous devriez maintenant avoir deux fichiers dans WKD $ / dst / boot - boot.img-noyau et boot.img-ramdisk.gz . Dans ce guide, nous sommes seulement intéressés à l'un plus tard, qui est l'image du disque virtuel qui contient tous les fichiers système de base, à l'exception du noyau.
Étape 3 - Préparation de la RAM pour la modification
Le fichier du disque virtuel est dans un format archive cpio compressée, ce qui ne peut pas être travaillé directement. Pour obtenir sous forme viable procédez comme suit:
cd $ WKD / dst / ramdisk boot mkdir &&
cd! $
gzip-dc $ WKD / dst / boot / boot.img-ramdisk.gz | cpio-i
Ce sera décompresser l'image ramdisk dans WKD $ / dst / boot / ramdisk / et la partie amusante peut commencer.
Étape 4 - Modification de la ramdisk image de démarrage
Franchement, vos possibilités sont pas énormes, mais si vous voulez une image qui stocke des applications sur votre carte SD, et peuvent commandes arbitraires au démarrage c'est là que les changements doivent être appliqués. Nous allons déraciner le système à l'étape 6.
Android utilise plusieurs scripts d'initialisation, mais nous sommes seulement intéressés par init.rc . Nous allons modifier ce fichier pour rediriger l'utilisateur de stockage app de la mémoire du téléphone vers la carte SD. Avant que vous pouvez utiliser cette image si, de votre carte SD doit avoir deux partitions - la première est une partition FAT32, et la seconde doit être une partition ext3 ou ext4. Il est plus que suffisante pour stocker des centaines d'applications.
Pour faciliter les choses, j'ai créé un fichier de patch que vous avez simplement besoin d'appliquer le script init.rc original. Cela va ajouter les entrées nécessaires pour monter la partition ext3 et rediriger / data / app et / data / app-privé pour le. Vous pouvez télécharger le patch de ce serveur . Une fois téléchargée, placez le fichier dans WKD.
Pour appliquer ce correctif, exécutez:
cd $ WKD / dst / boot / ramdisk && patch-p0 <$ WKD / init.rc.patch
Ça y est! Nous sommes prêts à remballer le fichier dans une image de démarrage.
Étape 5 - Création de la nouvelle image de démarrage
Pour créer votre nouveau fichier boot.img exécutez la commande suivante:
cd $ WKD / dst / boot
mkbootfs / ramdisk |. gzip> boot.img-ramdisk.gz
mkbootimg -. kernel / boot.img-kernel \
-. Ramdisk / boot.img-ramdisk.gz \
- Cmdline "no_console_suspend = 1 console = null" \
-O / boot.img -. De base 0x19200000
Maintenant, déplacez le nouveau fichier boot.img à $ WKD / dst / boot.img et enlever le démarrage répertoire. Il n'est plus nécessaire.
cd $ WKD / DST / && mv boot / boot.img. / && rm-rf. / boot
Étape 6 - Enracinement de la ROM et d'autres amusement
Avant que nous puissions avoir du plaisir avec le reste de la ROM, nous avons besoin de copier les fichiers sources à notre répertoire de destination. Si vous avez suivi l'étape 2 à 5, exécutez la commande suivante:
cp-pR $ / WKD src / {META-INF, le système} $ WKD / dst /
autrement exécuter:
cp-pR $ WKD / src / * $ WKD / dst /
Maintenant, nous avons une copie du travail de tous les fichiers de la mise à jour, et peut appliquer quelques modifications à leur disposition. Tout d'abord, nous allons ajouter la possibilité d'élever les privilèges pour devenir root. C'est ainsi que vous pouvez activer cette fonctionnalité. Télécharger " superutilisateur "de XDA Developers . "Superuser" est une application qui contrôle les applications peuvent utiliser / system / bin / su pour élever les privilèges root. Enregistrer et décompressez le fichier dans WKD $. Puis exécutez la commande suivante:
cp $ WKD / Superuser.apk $ WKD / dst / system / app /
cp $ / WKD WKD su $ / dst / system / bin /
Vous devez également modifier le script mise à jour ROM pour modifier les autorisations par défaut pour / system / bin / su de sorte qu'il peut être utilisé pour élever les privilèges root. Le script est dans $ WKD / dst / META-INF / com / google / android / mise à jour de script . Ouvrez-le dans votre éditeur favori et trouvez la ligne commençant par set_perm 0 2000 0550 SYSTEME: etc / init.goldfish.sh et après il ajouter ce qui suit set_perm 0 0 04755 SYSTÈME: bin / su . C'est tout. Le ROM est maintenant ancrée.
Ensuite,pour l’Europe modifier la configuration GPS de sorte que le service utilise des serveurs de temps européens, par opposition à l'Amérique du Nord, tout simplement parce qu'ils sont plus près, il ya plusieurs d'entre eux et il ya généralement moins de latence et de gigue impliqués. Pour ce faire modifier le gps.conf fichier:
sed-e 's | nord-america.pool.ntp.org | europe.pool.ntp.org | g' \
<$ WKD / dst / system / etc / gps.conf \
> / Tmp / gps.conf
mv / tmp / $ gps.conf WKD / dst / system / etc / gps.conf
Si vous voulez éviter que votre partition de données en cours soit wipe lors de la mise à jour, supprimer les lignes toutes en dessous de ce FORFAIT write_raw_image: BOOT boot.img: . Si vous ne le faites pas, la mise à jour se produira ce qui traduit essentiellement en une réinitialisation d'usine. Gardez cela à l'esprit. Toutefois, si vous ne nettoyez pas la partition de données, vous devez supprimer manuellement tous les fichiers dans / data ou Dalvik-cache sur l'appareil. Il est préférable de faire à partir du mode de récupération. Je vais laisser cette tâche à vous comme un exercice.
Il s'agit généralement d'aussi loin que je vais avec les changements, car à partir de maintenant je vais être capable de faire tout ce qui est nécessaire sur l'appareil lui-même. Mais si vous voulez apporter d'autres modifications, aller de l'avant - mais assurez-vous que vous savez ce que vous faites.
Étape 7 - Emballage et signer le fichier de mise à jour
Cette étape est assez simple et consiste à «passer comme un éclair" dans le répertoire mise à jour et cryptographiquement la signature de l'archive résultante. Ne ce faire, exécutez la commande suivante:
cd $ WKD / dst /
zip-r-mise à jour dst.zip *
java-classpath $ WKD /.. / tools / testsign.jar testsign \
mise à jour-mise à jour dst.zip-signed.zip
Vous devriez maintenant avoir un fichier nommé update-signed.zip dans WKD $ / dst /. Ensuite, vous devez télécharger le fichier sur votre appareil.
Étape 8 - Transfert du fichier de mise à jour
Connectez votre appareil au PC via USB. Assurez-vous que vous avez le débogage USB est activé dans les paramètres du périphérique. NE montez PAS la carte SD sur votre PC. Suivant télécharger le fichier:
adb push $ WKD / dst / update-signed.zip / sdcard / update.zip
La prochaine étape diffère pour les appareils qui ont une image de récupération personnalisé déjà flashé, et ceux qui ne le font pas. Commençons avec le plus tard. Gardez à l'esprit que ceci est basé sur l'image de récupération HTC
Étape 9 - Sauvegarde ROM actuelle
Si vous n'avez pas l'image de récupération personnalisé flashé déjà, vous devez démarrer votre appareil en utilisant fastboot. Cela nécessite un dispositif de pré-racines ou une ROM qui ne désactive pas le "fastboot usb" option. HTC ont enlevé cette option de ROM, mais il ya des façons de contourner cela (flashrec ou Golden Card) - Google il .
Connectez votre appareil au PC via USB. Assurez-vous que vous avez le débogage USB est activé dans les paramètres du périphérique. NE montez PAS la carte SD sur votre PC. Exécutez la commande suivante:
bootloader adb shell reboot
Cela vous amènera à l'appareil du chargeur de démarrage, et vous devriez voir FASTBOOT USB dans la troisième ligne dernière. Si vous n'aimez pas, votre chargeur de démarrage est probablement corrigé. Si vous ne le vois cependant, exécutez la commande suivante:
fastboot boot recovery_image
où recovery_image est le chemin vers le fichier image de récupération.
Une fois l'appareil démarré, vous devriez voir un écran similaire à celui-ci: Sélectionnez l'option "Backup / Restore" option et de l'écran suivant, sélectionnez "sauvegarde Nandroid". Confirmez avec la "Home" clé lorsque demandé. Cela va créer une sauvegarde complète de votre ROM actuelle, ainsi dans le cas quelque chose se passe mal, vous pouvez récupérer. Ne pas redémarrer votre appareil après la sauvegarde effectuée. Nous avons encore besoin des outils de récupération.
Étape 10 - Flasher le ROM personnalisé
Avant de commencer: Par défaut, cette procédure effacera votre partition de données propre, qui se traduit par une réinitialisation d'usine. C'est moins que vous avez supprimé les lignes nécessaires à partir du script mise à jour ROM comme décrit plus loin, et s'essuya le répertoire de cache Dalvik.
OK, neuf étapes plus tard, le temps est venu pour tester votre nouvelle, ROM sur mesure pour de vrai. Dans le menu de restauration, sélectionnez "Flash mise à jour d'image", puis "Appliquer sdcard: update.zip». Confirmez avec la "Home" clé lorsque demandé. Ce sera flasher votre ROM personnalisé sur l'appareil. Une fois ce processus terminé, votre appareil est prêt à démarrer dans sa nouvelle ROM. Retour à la principale «système Android de récupération" écran et sélectionnez "Redémarrer le système maintenant" en espérant pour le mieux. Si tout s'est bien passé, votre appareil va démarrer avec la nouvelle ROM. Il peut prendre quelques minutes juste quelques années, alors soyez patient. Si cela prend plus de 10 minutes, vous êtes en difficulté et la meilleure option est de démarrer en mode de récupération et de rétablir la ROM précédemment sauvegardé.