J'ai un téléphone (Samsung Galaxy A320F (AKA "A3 (2017)") avec la ROM stock qui contient un noyau 64-bit armv8l (Linux 3.18.14) et un espace utilisateur 32-bit avec une plateforme Android 8.0.0 32-bit. Certaines applications Android ne fournissent que des bibliothèques basées sur le NDK 64 bits, ce qui les rend incompatibles avec cette configuration.
J'ai essayé de transférer quelques binaires ELF64 sur le téléphone, comme par exemple gdb
, strace
, gphoto2
ainsi que libc.so.6
, ld-linux-aarch64.so.1
et d'autres parties de la glibc. Ils fonctionnent bien, donc je suis confiant dans la capacité du noyau à gérer de tels binaires.
J'aimerais maintenant essayer de rendre la plate-forme Android compatible avec les 64 bits. En particulier, j'aimerais que l'APK 64 bits puisse communiquer avec l'écran, l'écran tactile et un périphérique USB connecté au téléphone. J'ai un accès Root (via Magisk), donc en principe, je peux pirater le système comme je le souhaite.
Ma question est maintenant la suivante : quels sont les composants qui font que la plate-forme Android est 32 ou 64 bits ? S'agit-il seulement de la VM, ou peut-être de quelques bibliothèques supplémentaires ? Ou faut-il qu'il y ait aussi une partie 64 bits du HAL ? Combien de ces composants peuvent être pris, par exemple, de Lineage OS sans installer le Lineage OS complet ? Quelqu'un a-t-il déjà essayé de faire un mod similaire ?