Je suis 100% d'accord avec l'OP, Android est une horreur over-engineered et t'empêche de faire la moindre manipulation. Impossible de dev une app qui utilise des fonctionnalités systèmes. Obligé de décompiler/récompiler le framework pour faire ça
. Impossible de lancer 2 activités en même temps sans aussi devoir retoucher au code source
.
La putin de sandbox Dalvik/ART qui plombe les performances
Les signatures partout qui t'empêchent de faire la moindre bidouille
Mais avec un accès root, c'est un parcours du combattant pour faire la moindre modification à l'OS
Les fichiers systèmes sont dans une partition à part et non modifiables (sauf si tu rajoutes un overlay, mais c'est vraiment moyen)
Devoir se trimbaler une JavaVM partout dans le code natif
Tous les logiciels doivent avoir une case spécifique à android où tu as un cas spécifique Android, tout ça pour gérer cette machine virtuelle Java de merde
Les permissions qui cassent les couilles, le pire c'est qu'elles sont juste check manuellement dans le framework, c'est littéralement un appel d'API avec un if (granted) continue, des reflections java et ça peut se contourner
Des mécanismes IPC avec les pires performances au monde, AIDL au lieu de juste faire des sockets, signaux, de la mémoire partagée (même si c'est possible, faut très bien chercher pour les trouver, Android te montre que AIDL)
Le système de fichiers WTF avec 100 partitions sur 6 disques différents dont 80 qui servent avant même que le noyau linux soit chargé. En gros la première partition vérifie la 2ème et sa signature, puis la charge, et la 2ème fait idem avec la 3ème, et ce processus doit avoir lieu 6 fois au moins, en prenant en compte qu'il existe un TEE en dehors du noyau pour Qualcomm, tellement c'est pas sécurisé
Le vieux noyau linux