APK-Deinstallation scheitert aufgrund von aktivem Geräteadmin
Posted on Sunday, 17 April 2016 in Android
Als ich letztens bei F-Droid gestöbert habe, welche neuen Apps aufgenommen wurden, bin ich über WaveUp gestolpert. Eine App, die den Bildschirm einschaltet, wenn man ihm zuwinkt. Das klang für mich interessant genug, diese Spielerei kurz auszuprobieren. Zumindest bei mir hat es nicht funktioniert; lediglich die Option, den Bildschirm an-, bzw. auszuschalten, wenn das Smartphone aus, bzw. in die Tasche gesteckt wird, funktionierte gut. Was mich allerdings schnell gestört hat, da ich z. B. beim Überfahren der Statusleiste oben die Helligkeit reguliere, womit der Sensor evtl. zu lange abgedeckt wird und sich das Display ausschaltet. Also wieder deinstallieren. An diesem Punkt kam es zu einer Überraschung: Die Deinstallation schlug fehl. Mit der überaus vielsagenden Fehlermeldung "Es ist ein Fehler aufgetreten". Also über USB an den PC gehängt und das ganze mit adb versucht.
$ adb uninstall com.jarsilio.android.waveup
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
Okay, es schlägt zwar auch fehl, aber ich erhalte schon einmal eine etwas aussagekräftigere Fehlermeldung. Wenn man sich besser auskennt -- was bei mir nicht der Fall war -- würde man hier schon sehen, dass die App den DevicePolicyManager verwendet, um sie als Geräteadministrator (device admin) zu aktivieren.
Mehr zum Testen noch schnell pm auf dem Smartphone selbst bemüht:
$ adb shell pm path com.jarsilio.android.waveup
package:/data/app/com.jarsilio.android.waveup-1/base.apk
$ adb shell pm uninstall com.jarsilio.android.waveup
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
Das selbe Resultat, wenig überraschend. Um dem Problem genauer auf die Spur zu kommen, habe ich einen Blick in die Log-Files geworfen:
$ adb logcat -d -s PackageManager:*
--------- beginning of system
--------- beginning of crash
--------- beginning of main
04-17 09:01:32.052 2438 2528 W PackageManager: Not removing package com.jarsilio.android.waveup: has active device admin
04-17 09:03:47.080 2438 2528 W PackageManager: Not removing package com.jarsilio.android.waveup: has active device admin
Und siehe da, das Problem ist ausgemacht: Aktiver Geräteadministrator.
Die Lösung ist recht simpel: Im Menü die Einstellungen öffnen, den Punkt Sicherheit auswählen und dort unter Geräteverwaltung befindet sich der Punkt Geräteadministratoren (Menü unter Android 6, es könnte auch Location and Security sein). Auswählen, den Haken bei WaveUp entfernen und schon gelingt die Deinstallation.