Résumé pour le patient hospitalisé: Je veux exécuter une nouvelle version d'Android sur un vieux smartphone (s3mini).
(Désolé pour mon mauvais anglais, je suis allemand. N'hésitez pas à corriger ma grammaire dans les commentaires)
Bonjour les programmeurs et les fans d'Android,
Comme vous le savez peut-être, la plupart des smartphones Android ne reçoivent des mises à jour que pendant une courte période de temps jusqu'à ce que le fabricant de matériel cesse de prendre en charge ledit smartphone. Par exemple, mon smartphone (s3mini GT-I8200N) dispose toujours d'Android 4.2.2, ce qui n'est clairement pas idéal.
N'hésitez pas à me corriger si je me trompe, mais je crois comprendre que toutes les données sur le téléphone, y compris les pilotes, sont supprimées si je flash une ROM personnalisée (par exemple, Stock Android 7.0 ou LineageOS). Comme le fabricant (dans ce cas Samsung) ne publie pas ses pilotes, la communauté doit écrire ses propres pilotes pour chaque smartphone (qui évidemment ne sont pas aussi bons que les pilotes écrits par le fabricant car ils connaissent mieux le matériel).
Il est possible d'obtenir un shell root sur le smartphone / d'exécuter mon propre programme en tant que root sur le smartphone. Comme un processus root peut lire/écrire tous les fichiers sur l'appareil sauf le noyau, et qu'Android 7.0/LineageOS est publiquement disponible, il devrait être possible d'écrire un programme qui met à jour chaque fichier système Android. Mettre à jour le noyau avec des privilèges root ne devrait pas poser de problème non plus puisque le noyau Linux est signé. Voilà le plan :
Étape 1 : Télécharger et compiler Android 7.0/LineageOS
Étape 2 : Copier CompiledAndroid7.0.tar et le programme sur le smartphone
Étape 3 : Démarrer le programme avec les droits root
Étape 4 : Le programme termine tout autre processus
Étape 5 : Le programme supprime tous les fichiers sur le smartphone sauf les pilotes, le noyau, les modules de noyau, les fichiers liés au chargeur de démarrage, le programme lui-même et CompiledAndroid7.0.tar
Étape 6 : Le programme décompresse CompiledAndroid7.0.tar dans le répertoire racine (/) (Le programme doit être capable de décompresser un fichier .tar sans aucun autre logiciel sauf le noyau. Mais cela ne devrait pas être difficile à faire, il suffit de copier-coller à partir d'un logiciel open source de déballage).
Étape 7 : Installer le nouveau noyau signé (via un appel système) et redémarrer.
Maintenant, vous disposez d'un vieux smartphone avec Stock Android 7.0/LineageOS et les pilotes d'origine !
Cela pourrait-il fonctionner en principe ou ai-je mal compris le fonctionnement des smartphones Android ?
Un commentaire a dit que l'Étape 4 pourrait planter mon téléphone. Une belle solution de contournement serait que le programme remplace init par une copie de lui-même puis exécute "sudo reboot"
Les anciens modules/kernel/drivers fonctionnent-ils avec les nouvelles versions de Linux ? Sinon, pourquoi ?
MISE À JOUR
Je tiens à vous remercier tous pour votre aide. L'idée ci-dessus ne fonctionnera pas, donc je vais devoir en vouloir à Google pour ne pas avoir de bons serveurs de mise à jour Android et ne pas s'assurer que les anciens modules de kernel fonctionnent, ainsi qu'à Samsung car ils ne publient pas les sources des pilotes ou de pilotes mis à jour. Si j'ai le temps de le faire, je vérifierai si LineageOS prend en charge mon appareil et si ce n'est pas le cas, j'écrirai des pilotes.
0 votes
Toute ROM qui n'est pas de la marque est une ROM personnalisée. Les ROM du fabricant sont d'origine.
0 votes
Je sais que toute ROM qui n'est pas du fabricant est une ROM personnalisée.