Ich habe ein Samsung t355c. Ein China-Modell des normalen Tablets, das keine Gapps hat und, soweit ich es verstehe, einen gesperrten Bootloader hat. Es gibt keine benutzerdefinierte Wiederherstellung dafür. Läuft 5.0.1
Ich habe es geschafft, es mit Kingo zu rooten und habe viele Möglichkeiten ausprobiert, Google-Apps hineinzuschieben. Habe es vorerst gemauert ... Original-ROM erneut heruntergeladen.
Die Frage ist. Nachdem ich ihn repariert und erneut gerootet habe, verwende ich adb mit dem Root. Wie kann ich Gapps pushen?
Ich habe das nicht wirklich versucht, aber ein möglicher Ansatz wäre, den Schritten zu folgen, die eine benutzerdefinierte Wiederherstellung beim Installieren ("Flashen") der .zip
Datei ausführen würde - die in (nach dem Extrahieren des Archivs) zu finden ist META-INF/com/google/android/updater-script
. Für das Kitkat GApps-Archiv sieht dies so aus:
ui_print("Dateien werden installiert..."); run_program("/sbin/busybox", "mount", "/system"); show_progress(1, 15); delete("/system/app/Provision.apk","/system/app/QuickSearchBox.apk","/system/app/priv-app/SetupWizard.apk","/system/app/priv-app/Velvet .apk","/system/app/Vending.apk","/system/app package_extract_dir("system", "/system"); set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh"); package_extract_dir("optional", "/tmp"); package_extract_file("install-optional.sh", "/tmp/install-optional.sh"); set_perm(0, 0, 0777, "/tmp/install-optional.sh"); run_program("/tmp/install-optional.sh", ""); show_progress(1, 15); ui_print("Metadaten bereinigen und setzen..."); set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r: system_file:s0"); set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file: s0"); set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r: system_file:s0"); set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r: system_file:s0"); set_metadata_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u: Objekt_r:Systemdatei:s0"); set_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0" ); set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file: s0"); set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file: s0"); set_metadata_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", " u:object_r:system_file:s0"); set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r: system_file:s0"); run_program("/sbin/busybox", "umount", "/system"); ui_print("Installation abgeschlossen!");
Wir können natürlich die Kommentare/Debug-Ausgabe überspringen und landen damit im Wesentlichen bei diesen Schritten. Ich nehme an, Sie haben den Inhalt der Datei irgendwo auf Ihrem Gerät entpackt .zip
und sitzen zunächst in einer Shell (Terminal oder adb shell
) mit Root-Berechtigungen ( ):su
mount -o remount,rw /system
(Zeile 2)rm -f <file>
für jede von ihnen.zip
Dateiverzeichnisses system/
nach /system
(Zeile 5)chmod 0755 /system/addon.d/70-gapps.sh
(Zeile 6)sh /tmp/install-optional.sh
(Zeile 10)Jetzt wird es etwas schwieriger (für Anfänger) die set_metadata_recursive
Befehle zu interpretieren. Ich erkläre das in der ersten (Zeile 13):
/system/addon.d
muss im Besitz von uid 0 und gid 0 sein, Dateiberechtigungen sollten 0755 sein (dmode ist Verzeichnismodus, fmode Dateimodus), SELinux-Attribute sind u:object_r:system_file:s0
. Sie haben vielleicht bemerkt, dass ich zwei Spalten übersprungen habe: Ich habe keine Ahnung, wofür das "capabilities", 0x0
steht, also kann ich es nicht erklären (falls es jemand weiß, kommentieren Sie es bitte). Also machen wir das:
chown -R root:root /system/addon.d # -R is recursive, root is user/group id 0
chmod -R 755 /system/addon.d # as dmode and fmode are the same, we can do that
# at this place missing: SELinux properties. I've never dealt with those
Wenn wie in Zeile 14 fmode und dmode unterschiedlich sind, müssen Sie sich auch darum kümmern. Wenden Sie dmode wie oben an und folgen Sie ihm durch ein find <dir> -type f -print0 | xargs chmod <mode>
, ersetzen Sie es <dir>
durch das erste Argument von set_metadata_recursive
, und <mode>
durch den entsprechenden fmode.
/system
Abschließend wieder read-only mounten : mount -o remount,ro /system
– oder einfach rebooten (muss sowieso), was auch dafür sorgt.
Ich habe das SELinux-Zeug wegen fehlender Kenntnisse übersprungen. Es wird höchstwahrscheinlich ohne funktionieren – könnte aber für zusätzliche Sicherheit gut sein :)
gapps-remove.txt
auch mit einer Datei geliefert. Man kann es mit den Dateien vergleichen, die man in /system hat oder kopieren will. Das kann ihnen helfen zu wissen, was ihnen möglicherweise fehlt.SElinux-Labels setzen Sie mit dem Befehl „chcon“ und Sie können das Ergebnis mit „ls -laZ“ überprüfen.
Für: set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u: Objekt_r:Systemdatei:s0");
es wird sein: chcon "u:object_r:system_file:s0" /system/addon.d
Sie können dies überprüfen, indem Sie Folgendes ausgeben: ls -laZ /system/addon.d
Quelle für die Verwendung von "chcon": https://books.google.pl/books?id=AKbNBgAAQBAJ&pg=PA101&lpg=PA101&dq=%22u:object_r:system_file:s0%22&source=bl&ots=MbpesnKLkI&sig=ACfU3U2sJc-vYndDkUOk1Tru42hrcuPyUQ&hl=pl&sa=pl&sa=pl&xved =2ahUKEwjqwqKiwZDnAhWiAxAIHZH8AGAQ6AEwAXoECAkQAQ#v=onepage&q=%22u%3Aobject_r%3Asystem_file%3As0%22&f=false
Feuerlord
Izzy
/system
den Lese-/Schreibzugriff erneut einhängen und nach dem Pushen der Apps den schreibgeschützten Modus wieder aktivieren.Iakovl
Izzy
.zip
enthält das ein Skript:META-INF/com/google/android/updater-script
enthält die Schritte, die eine benutzerdefinierte Wiederherstellung normalerweise ausführen würde. Verwenden Sie das als Richtlinie – obwohl Sie die Befehle "konvertieren" müssen.