Was genau ist framework-res.apk

Soweit ich weiß, handelt es sich um eine große Systemdatei, die anscheinend einen großen Teil des Telefons steuert. Ich bin daran interessiert, weil ich ein paar Themen erstellen wollte und bisher SystemUI.apk bearbeitet hatte, aber wenn ich jemals auf Probleme stieß (und als Anfänger musste das passieren), schien nichts zu passieren, außer dass ich verlor meine Benachrichtigungsleiste.

Das Problem ist, dass ich von einigen Leuten gehört habe, die framework-res.apk berührt haben und am Ende nicht einmal in der Lage waren, ihr Telefon zu starten. Ich beschloss, bevor ich unvorsichtig mit etwas herumstocherte, das möglicherweise mein Telefon schwächen könnte, würde ich gerne ein bisschen mehr darüber erfahren.

Was genau ist framework-res.apk? Was wird es verwendet? Was kontrolliert es? Wo sehen wir seine Verwendung visuell? Was könnte möglicherweise mit meinem Telefon passieren, wenn etwas mit Framework-Res schief geht? Gibt es sonst noch etwas, das ich wissen sollte, bevor ich meine Nase stecke, wo sie nicht sein sollte?

Antworten (3)

Framework-res.apkenthält im Wesentlichen die Elemente der grafischen Benutzeroberfläche für das Telefon. Diese Datei ist verfügbar unter /system/framework/framework-res.apk.

In diese Datei zu stochern würde bedeuten, das komplette Erscheinungsbild Ihres Geräts zu ändern. Da es das Hauptelement Ihres Bildschirms ist, würde ein direktes Ersetzen durch Pushen durch ADB zu Soft-Brick führen. Daher sollte diese apk sorgfältig modifiziert und mit dem Wiederherstellungsmodul des Telefons ersetzt werden.

Unter diesem Link finden Sie weitere Einzelheiten dazu: Modifying the framework-res.apk (Theming the UI)

Aus meiner Programmiererfahrung kann ich Folgendes als mein Verständnis sagen:

Wenn Sie mit der Terminologie der Anwendungsentwicklung vertraut sind, ist diese framework-res.apk nur eine Ressourcenbibliothek. Wenn man diese Annahme fortsetzt, hängen andere Module, Bibliotheken von dieser Datei ab, um Bilder, Sound usw. zu erhalten. Zum Beispiel ist der Boot-Animationssound in diese Datei eingebettet. Jeder Ressource wird im Allgemeinen eine Kennung gegeben, während die anderen Module geladen werden, und sie werden einfach annehmen oder es als selbstverständlich ansehen, dass eine solche Ressource in dieser Datei verfügbar sein wird.

Im Allgemeinen gibt es eine Manifestdatei, die alle Ressourcen (Bilder, Sounds usw.) anhand ihrer Kennung indiziert. Die Codesegmente, die die Ressourcen ihrem Bezeichner zuordnen und die angeforderte Ressource abrufen, werden für eine Plattform/Version/Bibliothek kompiliert, und daher wird das Optimieren und erneute Kompilieren, wenn es nicht sorgfältig durchgeführt wird, die framework-res.apk inkompatibel mit seinen verbrauchenden Modulen machen. Je nachdem, wie die Dinge implementiert sind, würden Sie mit einem Fehler davonkommen, aber Entwickler können nicht erwarten, alles zu überprüfen, und sie müssen bestimmte Dinge als selbstverständlich ansehen (wie das Vorhandensein einer Ressource, da sie sie gepflanzt haben). Daher friert normalerweise das verbrauchende Modul ein und daher scheint das gesamte Telefon eingefroren zu sein, da auch Systemmodule von dieser apk abhängen.

Wenn Sie die AndroidManifest.xml-Datei von framework-res.apk ändern möchten, müssen Sie meiner Meinung nach alle System-APKs mit Ihrem eigenen Schlüssel signieren, um einen Bootloop zu vermeiden. Wenn Sie andere Dinge in framework-res.apk ändern möchten: "als meta-inf-Ordner und androidmanifest.xml mit 7zip oder winrar von der ursprünglichen apk auf die modifizierte apk ziehen"

In der framework-res.apk können Sie einige Gedanken wie Schutzniveau usw. ändern. Es ist interessant: https://www.reddit.com/r/LineageOS/comments/9z728h/how_to_change_frameworkresapk_without_bootloop/

Meine Fehler, wenn ich alle System-Apps mit meinem Schlüssel signiere: Android-System-App kann nicht neu signiert werden, ohne dass die App abstürzt (mit LineageOS)

Android-System-App kann nicht neu signiert werden, ohne dass die App abstürzt (mit LineageOS)

Er hat ähnliche Probleme und hat eine update.zip erstellt: https://stackoverflow.com/questions/9475576/resigning-system-img-on-a-device