Wie kann ich SELinux auf dem Samsung Galaxy Note 3 von "Durchsetzen" auf "Zulässig" ändern?

7

Mein Gerät ist Samsung Galaxy Note 3 SM-N9005.

Bei diesem Telefon ist SELinux standardmäßig auf Durchsetzen eingestellt.

Ich habe versucht, dies in freizügig zu ändern, aber ohne Erfolg.

Ich habe den Kernel aus dem Quellcode gemäß den Anweisungen von Samsung erstellt und der Datei init.rc in der Ramdisk eine Zeile hinzugefügt: "setenforce 0". Dies hat funktioniert, jedoch ist WLAN kaputt gegangen und ich habe keine Ahnung von der Kernelentwicklung.

Ich habe als root versucht, "setenforce 0" im Terminal und über adb auszuführen. Es gibt keinen Fehler, er bleibt jedoch erzwungen.

Ich habe keine Optionen mehr. Ich habe die Init-Dateien im Samsung-Quellcode durchgesehen und kann nirgendwo finden, wo Samsung SELinux als erzwungen festgelegt hat.

Jede Hilfe wird sehr geschätzt!

djtwigg
quelle
Ich habe versucht, "su setenforce 0" im Terminal, was vorübergehend funktionierte, aber die Datei init.rc scheint bei jedem Start erneuert zu werden, und der Befehl "setenforce 0" wird nicht dauerhaft sein. Ich verwende jedoch den Befehl i9505 MI8 android 4.3 CF-Rooted und setenforce funktioniert im Terminal, was bedeutet, dass SElinux auf meinem Gerät nicht gesperrt ist. Ich hoffe, Note3 wäre das gleiche
2
setenforceändert nur die Laufzeit - Modus, wenn Sie also die Veränderung wollen Neustarts bestehen bleiben über, fügen Sie setenforce 0den Wert ro.boot.selinux auf Ihre init.rc Dateien oder bearbeiten
onik
1
Ich bin mir nicht sicher, wie dies die Frage beantwortet.
Ale
Sie können seit 4.2.2 keine Root-Shell von ADB auf Lager und erzwungenen Geräten erhalten, ohne zusätzliches boot.imgHacken. Dies ist für alle ein schreckliches Durcheinander, aber Sie können es von einer lokalen Terminal-Shell aus tun .
not2qubit

Antworten:

6

Wenn Sie verwurzelt sind, installieren Sie es im Android Terminal EmulatorPlay Store und öffnen Sie eine Root-Shell. Stellen Sie außerdem sicher, dass Sie SuperSUfür SELinux die neueste Version (> 2,00) verwenden . Geben Sie dann: ein su 0 setenforce 0und sehen Sie, was passiert. Überprüfen Sie mit id. Wenn das nicht funktioniert, versuchen Sie es auch mit : su system setenforce 0. In AOS > 4.3 reicht es nicht aus, nur "root" zu sein (uid = 0), sondern Sie müssen auch den richtigen Kontext verwenden .

EDIT : 2015-11-06

Anscheinend hat Google seit AOS > 4.4 begonnen, einen permanenten Durchsetzungsmodus zu verwenden, der die SELinux-Richtlinie tatsächlich erzwingt. Diese Telefone haben die Option Zulässig über das DCONFIG_ALWAYS_ENFORCE=trueKernel-Konfigurationsflag in ihren Kerneln deaktiviert . Sie müssen einen unsicheren Kernel (z. B. CF_Root) oder einen brandneuen Kernel flashen, in dem dieses Flag deaktiviert wurde.

Google schreibt hier :

In der Android 5.0 (L) -Version geht Android zur vollständigen Durchsetzung von SELinux über. Dies baut auf der zulässigen Freigabe von 4.3 und der teilweisen Durchsetzung von 4.4 auf. Kurz gesagt, Android verlagert sich von der Durchsetzung einer begrenzten Anzahl wichtiger Domänen (installd, netd, vold und zygote) auf alles (mehr als 60 Domänen). Dies bedeutet, dass Hersteller ihre SELinux-Implementierungen besser verstehen und skalieren müssen, um kompatible Geräte bereitzustellen. Verstehe das:

  • In Version 5.0 befindet sich alles im Durchsetzungsmodus
  • In der Init-Domäne sollten keine anderen Prozesse als init ausgeführt werden
  • Jede generische Ablehnung (für ein block_device, ein Socket_device, einen default_service usw.) gibt an, dass das Gerät eine spezielle Domäne benötigt

Weitere Informationen zum Neukompilieren Ihres Kernels finden Sie hier .

not2qubit
quelle
funktioniert nicht auf meinem S5, erzwingt immer noch: - /
Matthias Urlichs