Consente innanzitutto di chiarire la differenza tra tutti i tipi di app.
Le app di sistema sono quelle che si trovano nella cartella /system/app
. Queste applicazioni hanno un flag ApplicationInfo.FLAG_SYSTEM
impostato. In un normale dispositivo, la partizione /system
viene montata per l'accesso in sola lettura. Pertanto, non è possibile aggiornare un'applicazione di sistema perché si trova nella posizione di sola lettura. Queste applicazioni possono essere aggiornate solo come parte dell'aggiornamento OTA.
Le app ordinarie si trovano nella partizione/dati che è in lettura/scrittura. Pertanto, queste applicazioni possono essere aggiornate da un sistema.
Ora parliamo di firme. Alcuni componenti Android sono protetti con le autorizzazioni del tipo di firma. Ciò significa che se si desidera avere accesso a un componente protetto con questo tipo di autorizzazione, la propria applicazione deve essere firmata con lo stesso certificato di un componente protetto. Questo è vero non solo per il sistema Android, ma anche per le applicazioni Android, cioè nella tua applicazione puoi avere un componente che è protetto con un permesso di firma, quindi solo le applicazioni che hanno la stessa firma avranno accesso a questo componente.
La terza tesi di cui abbiamo bisogno per rispondere alla tua domanda è che Android vieta l'installazione dei pacchetti che hanno lo stesso nome di pacchetto ma diverse firme.
Così,
Ho un app di sistema che l'OEM installa l'immagine del sistema con, ma è firmato da me. Se faccio l'upload di un apk aggiornato sul mercato, l'app di mercato installa automaticamente questo aggiornamento automaticamente?
Se la mia app di sistema è invece firmata con la firma della piattaforma invece , significa che tutti gli aggiornamenti devono anche essere firmati con la firma della piattaforma , corretta? Un apk piattaforma-firmato può essere aggiornato dal mercato ?
La risposta è no. Sebbene le app che si trovano in/system/app possano essere firmate con un certificato diverso da quello della piattaforma, l'aggiornamento di queste applicazioni è possibile solo con l'aggiornamento del sistema.
Per risolvere il problema è possibile modificare il nome pacchetto dell'applicazione, firmarlo con il proprio (se l'applicazione non richiede l'accesso ai componenti Android protetti) o la piattaforma (se l'applicazione deve avere accesso ai componenti protetti e se hai accesso a questa firma) e metti questa applicazione sul mercato. Quindi, riceverai gli aggiornamenti della tua domanda attraverso il mercato.
altre risposte indicano che le applicazioni di sistema possono essere aggiornati, ad esempio http: // StackOverflow .com/domande/7825045/can-a-sistema-app-essere-aggiornato.L'apk aggiornato viene installato in/data/app e il sistema utilizza invece la versione aggiornata. L'utente potrebbe potenzialmente disinstallare questa versione aggiornata, ma non la versione originale in/system/app. –
Non conosco questa possibilità. Tuttavia, l'applicazione verrà installata nella cartella/data/app e ciò non contraddice la mia risposta. La cartella/system può essere aggiornata solo con l'aggiornamento del sistema. In ogni caso, grazie per il chiarimento di questa domanda! – Yury
Come vengono aggiornate le app di google anche se si trovano nella cartella delle app di sistema – amalBit