Beim Flashen apk als Systemanwendung signieren

Ich habe eine Anwendung erstellt, die Schnittstellen und Klassen sowie Berechtigungen aus der versteckten API verwendet. Jetzt möchte ich eine flashbare Zip-Datei erstellen, die die apk als System-App installiert. Wenn ich richtig liege, muss ich die apk-Datei mit dem Zertifikat des aktuellen ROMs signieren (wegen der versteckten API-Nutzung).

Um so systemlos wie möglich zu sein, dachte ich, es wäre großartig, das Zertifikat aus dem ROM zu extrahieren und die apk innerhalb des Flash-Prozesses zu signieren, bevor sie in den internen Speicher kopiert wird. Ist das möglich?

Oder habe ich etwas falsch verstanden und es ist viel einfacher als ich denke?

Antworten (2)

Es scheint, dass Sie hier einige Missverständnisse haben: Um ein Paket zu signieren, benötigen Sie den Schlüssel, den Sie nicht aus dem ROM extrahieren können (er ist nicht dort oder es wäre ein Sicherheitsproblem). Sie benötigen diesen Schlüssel also nur, wenn Ihre App Berechtigungen anfordert, die mit dem Level ¹ geschützt sind signature(dafür signatureOrSystemreicht es aus, sie zu einer System-App zu machen).

Aus Ihrer Frage kann ich nicht sagen, in welche Kategorie die Berechtigungen Ihrer App fallen – aber das würde hier ohnehin den Rahmen sprengen, da sich Android.SE auf Endbenutzer konzentriert. Um das zu verdeutlichen, sind Sie mit Stack Overflow besser dran .

¹ Offenlegung: Link führt zu meiner Seite

Vielen Dank für diese hilfreiche Antwort. Ich frage wegen dieser Erlaubnis. Hat keine Signatur oder System, aber vielleicht sind Privilegien oder Entwicklung auch in Ordnung?
Ich bin mir nicht 100% sicher (unsere Freunde bei SO sollten es wissen), aber dafür privilegedsollte es ausreichen, den .apkin zu platzieren /system/priv-app/(wie Chinmay betonte ). Laut den Entwicklerdokumenten wurde dies systemfür api 24+ ersetzt (siehe Details PROTECTION_FLAG_SYSTEMdort). Siehe developmentden ersten Link, den ich in meiner Antwort angegeben habe.
Ah okay danke! Übrigens ist der erste Link Ihrer Antwort mit htaccess geschützt.
Ups – das wurde behoben, sorry (war der falsche Link). Und ich werde diese Liste so schnell wie möglich mit den neuen protLevels aktualisieren, die seit MM hinzugefügt wurden.

Ich habe selbst einige Experimente mit System-Apps durchgeführt. Ich sage das also aus Erfahrung – Wenn Sie eine Release-App von Android Studio erstellt haben (versuchen Sie, die Debug-Releases zu vermeiden), benötigen Sie kein Zertifikat-Patching. Fahren Sie fort und erstellen Sie eine flashbare ZIP-Datei mit den entsprechenden Berechtigungen ( 0644), die die App einfügt, /system/app/oder /system/priv-app/wenn Sie vollen Zugriff auf einige der Systemberechtigungen benötigen.

Ich rate Ihnen, zuerst zu versuchen, die App manuell mit einem beliebigen Root-Explorer in das /systemVerzeichnis zu stellen, da flashbare Zips überwältigend werden können, wenn sie in wenigen Versuchen nicht funktionieren.