gi system tillatelser til en app i Android emulator

stemmer
12

Jeg bygger en app som vil bli samlet på en Android-enhet som et system app. Produsenten er en måte ut på å levere enheten til oss, så i mellomtiden vil jeg gjerne gi min app system nivå tillatelser i emulator slik at jeg kan jobbe på en oppdateringsfunksjon auto som vil gjøre tause installasjoner av APK uten interaksjoner fra brukeren. Fra hva jeg har lest, det er min forståelse at den eneste måten å være i stand til å gjøre stille installasjoner på android er hvis programmet er signert med samme cert som OS. Så hvordan kan jeg simulere dette i emulator?

Publisert på 29/02/2012 klokken 04:12
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Så vidt jeg kan fortelle, må du:

  • laste ned Android kilde og bygge en emulator firmware image.
  • signere søknaden din med nøklene i Android kilde treet på /build/target/product/security/.
  • legge android:sharedUserId="android.uid.system"til programmets manifest.
  • kjøre programmet på en emulator bruke bildet bygget i trinn 1.

Grunnen til å bygge din egen firmware bildet er slik at du kan få på tastene. Nå, det kan være mulig at nøklene til standard emulator bildet er tilgjengelig sted, noe som vil spare deg for den lange og svært kjedelige prosessen med å bygge din egen Android, men jeg er redd jeg har ingen anelse om hvor disse kan være.

Ansvarsfraskrivelse: aldri prøvd dette selv.

Svarte 04/03/2012 kl. 07:42
kilden bruker

stemmer
28

Hvis du ønsker en signatureOrSystem tillatelse, du trenger bare å bli plassert på systemet bildet; du trenger ikke å være signert med noen spesiell cert. Du kan gjøre dette som en one-off (før du går ut av emulator) som dette:

> adb root
> adb remount
> adb push /path/to/My.apk /system/app/My.apk

Når du har gjort det, kan du bruke den normale prosessen for å installere ytterligere oppdateringer på datapartisjonen ( "ADB installere -r /path/to/My.apk" som er det utviklerverktøyene gjør når du kjører fra Eclipse). Når du installerer denne måten beholder app noen signatureOrSystem tillatelser det hadde bedt om fra den opprinnelige versjonen på systemet bilde, men kan ikke få noen nye slike tillatelser.

Hvis du trenger rene signatur tillatelser, må du registrere din app med samme cert som det som er å erklære de tillatelser (typisk kjerne rammeverket, men media system er en egen cert etc). Hvis du ber om signatur tillatelser du ikke trenger å være installert på systemet bilde, kan du bare installere den som en vanlig app, og det kan fortsatt få tillatelsene grunn av signeringen.

Svarte 10/03/2012 kl. 06:07
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more