2013-02-07 7 views
8

Ich habe eine System-App, die der OEM mit dem System-Image installiert, aber von mir signiert ist. Wenn ich eine aktualisierte APK auf den Markt lade, installiert die Market App dieses Update automatisch automatisch?Update der Android-System-App, mit/ohne Plattform-Signatur

Wenn meine System-App stattdessen mit der Plattform-Signatur statt meiner signiert ist, bedeutet dies, dass alle Updates auch mit der Plattform-Signatur signiert werden müssen, richtig? Kann eine Plattform-signierte apk vom Markt aktualisiert werden?

Antwort

6

Lassen Sie uns zuerst den Unterschied zwischen allen Arten von Apps klären.

System-Apps sind diejenigen, die sich im Ordner /system/app befinden. Diese Anwendungen haben ein Flag ApplicationInfo.FLAG_SYSTEM festgelegt. In einem gewöhnlichen Gerät ist die Partition für den schreibgeschützten Zugriff eingerichtet. Daher kann eine Systemanwendung nicht aktualisiert werden, da sie sich in der schreibgeschützten Position befindet. Diese Anwendungen können nur als Teil des OTA-Updates aktualisiert werden.

Gewöhnliche Anwendungen befinden sich auf der/Datenpartition, die Lese-Schreib-Funktion ist. Somit können diese Anwendungen von einem System aktualisiert werden.

Jetzt sprechen wir über Signaturen. Einige Android-Komponenten sind mit Berechtigungen für den Signaturtyp geschützt. Wenn Sie also Zugriff auf eine Komponente haben möchten, die mit dieser Art von Berechtigung geschützt ist, muss Ihre Anwendung mit demselben Zertifikat wie eine geschützte Komponente signiert sein. Dies gilt nicht nur für das Android-System, sondern auch für Android-Anwendungen, d. H. In Ihrer Anwendung kann eine Komponente mit einer Signaturberechtigung geschützt sein, sodass nur Anwendungen mit derselben Signatur Zugriff auf diese Komponente haben.

Die dritte These, die wir benötigen, um Ihre Frage zu beantworten, ist, dass Android die Installation der Pakete verhindert, die den gleichen Paketnamen, aber unterschiedliche Signaturen haben. So

,

ich eine System-App haben, die die OEM mit dem Systemabbild installiert, aber wird von mir unterzeichnet. Wenn ich eine aktualisierte APK auf den Markt lade, wird die Markt-App automatisch dieses Update automatisch installieren?

Wenn meine System-App stattdessen mit der Plattform-Signatur anstelle von von mir signiert ist, bedeutet dies, dass alle Updates auch mit der Plattform-Signatur signiert werden müssen, richtig? Kann eine Plattform-signierte apk von dem Markt aktualisiert werden?

Die Antwort ist nein. Obwohl die Apps, die sich in/system/app befinden, mit einem Zertifikat signiert sein können, das sich von dem der Plattform unterscheidet, ist das Update dieser Anwendungen nur mit Systemupdate möglich.

Um Ihr Problem zu lösen, können Sie den Paketnamen Ihrer Anwendung ändern und mit Ihrem (falls die Anwendung keinen Zugriff auf geschützte Android-Komponenten benötigt) oder der Plattform (wenn die Anwendung Zugriff auf geschützte Komponenten haben soll und wenn Sie haben Zugriff auf diese Signatur) und diese Anwendung in den Markt bringen. Dann erhalten Sie die Updates Ihrer Anwendung über den Markt.

+2

Andere Antworten, die System-Apps anzuzeigen, aktualisiert werden können, zum Beispiel http: // Stackoverflow .com/fragen/7825045/can-a-system-app-wird aktualisiert.Die aktualisierte APK wird in/data/app installiert und das System verwendet stattdessen diese aktualisierte Version. Der Benutzer könnte diese aktualisierte Version möglicherweise deinstallieren, aber nicht die ursprüngliche Version in/system/app. –

+0

Ich weiß nicht über diese Möglichkeit. Die Anwendung wird jedoch im Ordner/data/app installiert, was meiner Antwort nicht widerspricht. Der Ordner/system kann nur mit dem Systemupdate aktualisiert werden. In jedem Fall, danke für die Klärung dieser Frage! – Yury

+2

Wie werden die Google Apps aktualisiert, auch wenn sie sich im System-App-Ordner befinden? – amalBit

0

Das System wird keine apk in/data/app als Update behandeln, es sei denn die signatur der in Spiele/system/ap

Verwandte Themen