Eine Android-App automatisch starten

Für ein altes Android-Tablet möchte ich gerne XBMC automatisch beim Hochfahren starten. Zwar gibt es einige Apps, die derartige Autostarts erledigen, doch letztendlich habe ich mich dafür entschieden, XBMC als „Launcher“, also als zentralen „Programmstarter“ zu installieren.

Das erfordert die Änderung der Manifest-Datei von XMBC.

Dafür benötigt man ein paar Werkzeuge:

Außerdem sollte Java (die Runtime JRE genügt) und ein gescheiter Texteditor (z.B. Notepad++) installiert sein.

Jetzt eine Eingabeaufforderung starten, in das Verzeichnis mit den Dateien wechseln und es kann los gehen:

Entpacken der APK-Datei:

Um die benötigten Änderungen vornehmen zu können, muss die APK-Datei zunächst entpackt werden. Das geschieht mit dem Befehl

apktool d xbmc-13.2-Gotham-armeabi-v7a.apk

Bearbeiten des Manifests:

Jetzt wird in das Manifest eingetragen, dass die App als Launcher fungieren soll. Dazu wird in den Abschnitt <intent-filter> der Manifest-Datei zusätzlich eingetragen

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>

Manifest.xml

Packen der APK-Datei:

Nach dem Editieren kann man nun aus den Quelldateien wieder eine APK-Datei machen. Dazu dient der Befehl

apktool b xbmc-13.2-Gotham-armeabi-v7a xbmc-13.2.apk

Der erste Parameter ist dabei das Verzeichnis der entpackten und veränderten Dateien, der zweite Parameter der Name der zu erstellenden APK-Datei.

Signieren der APK-Datei:

Nun muss die Datei noch signiert werden, damit sie installiert werden kann. Der Befehl dazu:

java -jar signapk.jar certificate.pem key.pk8 xbmc-13.2.apk xbmc-13.2-signed.apk

Die Datei wird damit mit dem beiliegenden Testzertifikat signiert und ist installationsbereit. Sauberer wäre es, sich selbst ein eigenes Zertifikat auszustellen und dies zum signieren zu verwenden; wer das tun möchte, lese die entsprechende Dokumentation.

Befehlszeile

Die Datei kann nur dann installiert werden, wenn sie noch nicht installiert ist – ansonsten wäre die installierte mit einem anderen Zertifikat signiert, unsere veränderte Version würde durch die Android-Sicherheitsmechanismen nicht akzeptiert. Also vorab XBMC deinstallieren und unsere veränderte Version nutzen.  Beim Druck auf die Home-Taste erscheint nun die gewünschte Abfrage:

Screenshot_2014-09-21-17-21-38