LineageOS avec PaX pour le ZTE Open C

Comme promis dans les commentaires sur mon précédent article, voici ma version récente de LineageOS ayant pour principale nouveauté l’ajout de PaX afin de durcir le noyau du ZTE Open C.

Journal des modifications :

  1. MODIFICATION CONCERNANT LINEAGEOS :
    Démarrage en « slub_debug=P slab_nomerge »
    Amélioration de l’énergie en activant le mode « NO_WIFI_STATS »
    Désactivation du DRM Widevine
    Randomisation des adresses MAC avant l’association
    Optimisation de Zygote
    Utilisation des notifications privées par défaut sur le verrouillage d’écran
    Début du marquage des applications nécessaire pour l’activation de PaX MPROTECT
    Ajout d’une ligne indiquant le statut de PaX dans le menu « Paramètres –> A propos » du téléphone.
    Désactivation de statistique et de rapport d’erreur.
  2. MODIFICATION DU NOYAU LINUX :
    Durcissement de la configuration du noyau en utilisant les recommandations du KSPP
    Ajout du patch PaX pour durcir le noyau qui en a bien besoin
    Note: L’option MPROTECT est fonctionnelle mais non activée pour ne pas casser les applications utilisant du javascript. comme le HTMLViewer, le Browser etc…
    J’ai commenté du « print » dans la couche MSM (avec la description « NO-SPAM ») pour dépolluer le dmesg.
    Quelques backports pour avoir un port fonctionnel de PaX
    Backport des Kconfig de Grsecurity
    Ajout de « android_aid.h » provenant de CopperheadOS afin d’utiliser PaX MPROTECT à l’avenir.
    Restriction sur config.gz, timer_list, timer_stats et kallsyms.
    Application d’une recommandation de Grsecurity sur user_namespace.c
    Suppression de l’avertissement « SECTION_MISMATCH » qui apparaît avec PaX
    Passage du numéro de compilation du noyau en 1337 😉
  3. PREVISION POUR LA SUITE :
    Peaufinage de mon port de PaX
    Ajout du patch Grsecurity 3.4.7 (notamment pour avoir une meilleure journalisation)
    Étudier la possibilité de passer le noyau en version 3.10
    Passage sur LineageOS 14.1 (car la version 13.0 basée sur android 6.0.1 n’est officiellement plus maintenue)
    Optimisation à faire pour économiser les faibles ressources du matériel surtout avec les versions récentes de LineageOS.
  4. LIEN DE TELECHARGEMENT : http://dl.free.fr/ke2mMtHTj
    MD5 = ee211a235828dba3495dce69f96ef543
    Source: Public-sharing

Je tiens à remercier encore une fois KonstaKANG pour la qualité de son travail laissé accessible et que j’ai pu récupérer comme base pour le ZTE Open C.
Je rappel également que c’est un port non-officiel de recherche maintenu seul de mon coté et par conséquent qu’il s’adresse aux utilisateurs expérimentés.

Publicités

7 réponses à “LineageOS avec PaX pour le ZTE Open C

  1. Merci beaucoup. Je cherchais à réutiliser mon Open C qui me sert de tél de backup et la 14.1 était assez insupportable vis à vis des plantages. Comme Konsta n’a jamais fais de suivi de son unique release. N’hésite pas à poster tres mises à jour. Merci ! 🙂

  2. Salut!

    J’ai testé cette ROM pendant quelques jours : elle m’a semblé très bien fonctionner, avec des performances acceptables (pour peu qu’on n’active pas le chiffrement du téléphone). Seul bémol : les vidéos, qui semblent encore fonctionner de manière capricieuse, que ce soit en lecture ou en enregistrement. Cela crashe parfois l’appareil photo, et certaines vidéos refusent de tourner (en HTML5 dans le navigateur Fennec). Cela semble dépendre non pas de la vidéo ou du site, mais du contexte (je n’ai pas réussi à être plus précis) : des fois ça marche, des fois non… Mais bref, le problème de vidéo ne me parait pas bloquant.

    Je n’ai pas eu l’occasion de tester les renforcements de sécurité ajoutés au kernel, mais je plussoie!

    Après, l’OS semble manquer de mémoire vive : apparemment il utilise pas mal de swap. Et je soupçonne que ce soit à l’origine des ralentissements ponctuels que j’ai remarqués. Pas dramatique : en fermant chaque application au lieu de les mettre en tâche de fond, ça limite le problème.

    Ensuite, j’ai essayé d’utiliser l’appareil en téléphone principal quelques jours, mais ça n’a pas été très concluant. La partie téléphonie fonctionne bien, mais j’ai dû avoir une dizaine de reboots non sollicités en 2 jours. Parfois pendant que je n’utilisais pas l’appareil (qui se retrouve donc hors réseau, car il ne connaît pas encore le code PIN de la carte SIM). A chaque fois le même symptôme : l’appareil semble se figer, puis affiche brièvement un écran blanc, puis redémarre.
    Tant pis, je vais revenir sur Firefox OS pour l’instant.

    Il m’a aussi semblé que je perdais de temps en temps la connectivité réseau (en 3G), même si la réception était bonne. Un reboot résolvait le problème.

    J’aimerais beaucoup pouvoir utiliser LineageOS au quotidien sur cet appareil (pour moi et pour d’autres personnes de mon entourage), et suis prêt à aider aux tests (s’il faut fournir des logs, tester des contournements ou des versions etc).
    Cela dit, j’ai bien compris qu’une utilisation quotidienne n’était pas forcément le principal objectif de cette ROM…

    Bref, en tous cas, un grand merci pour ce travail! (qui devrait me rendre service, même si ce n’est pas pour une utilisation quotidienne)

    • Salut,

      > certaines vidéos refusent de tourner
      > (en HTML5 dans le navigateur Fennec)

      Peux-tu tester avec Firefox Focus STP pour voir, merci.

      > Après, l’OS semble manquer de mémoire vive
      Oui, seulement 420mo de RAM utilisable par le système… Et la plate-forme

      Android est plus lourde qu’un lxde, xfce & Cie…

      > La partie téléphonie fonctionne bien, mais j’ai dû avoir une dizaine de reboots non sollicités en 2 jours.

      J’ai backporté des correctifs dans la version que je test qui semble corriger le problème. Je publierai prochainement cette version.

      > appareil semble se figer, puis affiche brièvement un écran blanc, puis redémarre.

      PaX à du trouver un bug ^^ Si tu arrives à le reproduire, le dmesg m’intéresse.

      > et suis prêt à aider aux tests

      Super, je suis preneur d’un beta testeur 🙂

      > une utilisation quotidienne n’était pas forcément le principal objectif de cette ROM

      Plus j’avancerai dans mon port de PaX/Grsec, plus le système sera stable 😉

      Sinon de mon coté, je viens de rajouter grsec (ce qui doit être une première sur Android) et j’ai activé SCHED_AUTOGROUP (qui boost les performances). Je pense publier une nouvelle ROM prochainement. Le code du noyau est déjà disponible ici :
      https://github.com/HacKurx/android_kernel-unofficial_grsec_zte_msm8610

      • Cool!

        Je n’ai pas installé les Gapps, donc ne peux pas facilement mettre Firefox Focus. Cela dit, Fennec c’est à peu de choses près Firefox, et j’ai des difficultés similaires sur le navigateur par défaut de LineageOS.
        Pas simple d’investiguer là-dessus puisque c’est assez aléatoire.
        En tous cas, il me semble que ça fonctionne bien mieux en utilisant par exemple NewPipe pour les vidéos Youtube.
        Autre info a priori liée : j’ai dans les logs du kernel des erreurs sur qseecomd en boucle :
        [15459.424511] init: Starting service ‘qseecomd’…
        [15459.789424] type=1400 audit(1524662333.539:5157): avc: denied { read write } for pid=30652 comm= »qseecomd » name= »mmcblk0rpmb » dev= »tmpfs » ino=6183 scontext=u:r:tee:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0
        [15459.811979] init: Service ‘qseecomd’ (pid 30652) exited with status 255
        [15459.817936] init: Service ‘qseecomd’ (pid 30652) killing any children in process group
        Manquerait-il une règle SELinux pour ce processus?

        Finalement, ce problème de vidéo semble affecter également l’audio : il m’est arrivé de ne plus pouvoir lancer de musique en MP3 (il ne se passe rien), et surtout ça avait bloqué la sonnerie du téléphone en cas d’appel entrant : vibreur mais aucun son, possibilité de décrocher et d’avoir une conversation normale ensuite.

        Concernant les reboots, ça continue et semble se produire de manière assez aléatoire. Ca m’est arrivé une fois en pleine conversation téléphonique : un peu gênant 😉

        En tous cas, je suis partant pour beta-tester les prochaines versions.
        Concernant la fourniture des logs du kernel après un crash, je n’ai pas trouvé comment faire : je suis bien root sur l’appareil, ai accès à /proc/kmsg, mais n’ai pas trouvé de /proc/last_kmsg. Ca se fait d’une autre manière?

        A propos de la connectivité 3G, un contournement moins violent que le reboot consiste à désactiver les data dans les paramètres, puis les réactiver : ça suffit à retrouver l’accès Internet par la 3G.

      • 1] Pour Focus, tu peux le télécharger ici :
        https://github.com/mozilla-mobile/focus-android/releases

        2] Pour l’audio et les vidéos, il y a parfois des petits problèmes mais cela doit venir de LineageOS ou d’un patch qui n’est pas pas été appliqué par KonstaT. A voir avec la nouvelle ROM que je viens de publier.

        3] Oui, c’est bien SELinux pour qseecomd. J’ai commenté afin d’éviter son chargement (j’ai pas confiance) à partir du fichier « device/zte/kis3/proprietary-files.txt » mais le paramètre n’a pas été pris en compte (il doit être chargé à plusieurs emplacement…). Tu peux le supprimer sans problème via :
        adb root
        adb shell
        mount -o rw,remount /system
        rm /system/bin/qseecomd
        mount -o ro,remount /system

        4] Concernant les logs, pour enregistrer depuis un pc
        adb root
        adb shell cat /proc/kmsg > kmsg

        Ou pour enregistrer le dmesg sur la sd :
        adb root
        adb shell
        setsid cat proc/kmsg > /sdcard/kmsg.txt &

        5] Concernant la 3G, je n’ai pas de problème de mon coté, à voir dans les logs.

        N’hésite pas à me contacter par e-mail pour plus de convivialité.

      • En virant le fichier /system/bin/qseecomd, l’erreur en boucle a bien disparu des logs.

        Concernant les logs du kernel, je sais bien les récupérer. Ma question était de trouver une solution pour récupérer les logs d’un kernel après un reboot du téléphone, pour comprendre pourquoi il a rebooté. La difficulté étant que cette log est apparemment écrite en mémoire, donc perdue après un reboot. Certaines personnes parlent de /proc/last_kmsg (qui contiendrait les logs du kernel avant le dernier reboot), mais il ne semble pas exister ici.

        Je teste maintenant la nouvelle ROM de https://hackurx.wordpress.com/2018/04/25/lineageos-avec-un-noyau-grsec-non-officiel-pour-le-zte-open-c/ : je te donnerai mes retours en commentaires du nouvel article de ton blog. Je trouve que c’est pas si mal de faire comme ça : on sait jamais, ça pourrait intéresser d’autres personnes.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s