Update der Android System App, mit / ohne Plattform Signatur

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, wird die Markt-App automatisch dieses Update automatisch installieren?

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

    
Android QS 07.02.2013, 20:10
quelle

2 Antworten

6

Lasst 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 gesetzt. In einem gewöhnlichen Gerät ist die Partition /system für den Nur-Lese-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 der OTA-Aktualisierung aktualisiert werden.

Gewöhnliche Apps befinden sich auf der / data-Partition, die schreibgeschützt 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 Android-Systeme, sondern auch für Android-Anwendungen, dh in Ihrer Anwendung können Sie eine Komponente haben, die mit einer Signaturberechtigung geschützt ist, sodass nur Anwendungen mit derselben Signatur Zugriff auf diese Komponente haben. p>

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.

Also,

  

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

     

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

Die Antwort lautet nein. Obwohl die Apps, die sich in / system / app befinden, mit einem Zertifikat signiert werden können, das sich von dem der Plattform unterscheidet, ist die Aktualisierung 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 (falls die Anwendung Zugriff auf geschützte Komponenten haben sollte) signieren Zugang zu dieser Signatur) und diese Anwendung in den Markt bringen. Dann erhalten Sie die Updates Ihrer Anwendung über den Markt.

    
Yury 08.02.2013 08:45
quelle
0

Das System behandelt eine apk in / data / app nicht als Aktualisierung, es sei denn, die Signatur stimmt mit der in / system / ap

überein     
Yissr 04.12.2014 19:29
quelle