Où puis-je trouver des informations sur le piratage de bas niveau du noyau d'Android ? Par exemple, j'aimerais savoir comment l'appareil démarre et suivre le chemin d'exécution à partir de ce point. Où se trouve exactement le code qui s'exécute après que j'ai appuyé sur le bouton d'alimentation ?
Réponse
Trop de publicités?Ce lien contient les parties où vous pouvez intervenir / ajouter votre propre fonctionnalité
L'écoulement brut est Mise sous tension > Chargeur de démarrage > Noyau > Processus d'initialisation > Serveur système > Démarrage terminé
Au chargeur de démarrage l'étape suivante est exécutée :
A. La première étape du chargeur de démarrage va détecter et configurer la RAM externe.
B. Une fois que la RAM externe est disponible et que le système est prêt à exécuter quelque chose de plus important, la première étape chargera le chargeur de démarrage principal et le placera dans une mémoire externe. principal et le place dans la RAM externe.
C. La deuxième étape du chargeur de démarrage est le premier programme majeur qui sera exécuté. Il peut contenir du code pour mettre en place des systèmes de fichiers, une mémoire supplémentaire, un support réseau et d'autres choses. Sur un téléphone mobile, il peut également être responsable du chargement du code pour l'unité centrale du modem et de la mise en place d'une protection de la mémoire de bas niveau. et de mettre en place des protections de mémoire de bas niveau et des options de sécurité.
D. Une fois que le chargeur d'amorçage a terminé ses tâches spéciales, il recherche un noyau Linux à amorcer. Il le chargera à partir du support d'amorçage (ou d'une autre source). (ou une autre source selon la configuration du système) et le place dans la la RAM. Il placera également certains paramètres d'amorçage dans la mémoire pour la fonction pour que le noyau les lise au démarrage.
E. Une fois que le chargeur de démarrage a terminé, il effectue un saut vers le noyau Linux. Linux, en général une routine de décompression, et le noyau prend en charge la la responsabilité du système.
Voici un autre lien (plutôt du côté de Linux) sur le sujet avec des références : Réponse du site eLinux
Ce commentaire m'a interpellé :
En général, il est assez délicat de créer un boot existant car ils sont souvent livrés avec des chargeurs d'amorçage faits sur mesure par le fabricant. Pour ajouter à la difficulté, ils ont aussi des fonctions de sécurité de sécurité qui visent à vous empêcher de télécharger votre propre chargeur d'amorçage. Cependant, si vous disposez d'une plateforme ouverte, vous avez besoin d'un bootloader initial et d'un bootloader principal capable d'exécuter des fonctions de sécurité. initial et d'un chargeur d'amorçage principal capable de démarrer et/ou de flasher un logiciel sur le dispositif. périphérique. Pour le chargeur de démarrage principal, vous aurez probablement besoin de http://www.denx.de/wiki/U-Boot . L'étape initiale du bootloader devait [ ] nécessitant un peu de documentation ou de rétro-ingénierie afin de créer ou de télécharger un protocole approprié. Pour résumer, la reprogrammation de téléphones existants téléphones existants est souvent plus de travail qu'il n'en vaut la peine, sauf si vous êtes vraiment vraiment intéressé, auquel cas il existe de nombreux forums dédiés à ce genre de ce genre de choses.