Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

adb uninstall failed

Tags:

android

adb

I am writing some sample apps.
After I debug these apps, I don't see an uninstall button in my device's application management.
When I do adb uninstall, it always says Failure without any reason.
In DDMS I saw that my apk is stored in /data/app/com.k2g.leaveDemo-1.apk.
I am not sure what am I missing.
I always have to reset my device to get rid of these apps :(

Do I need to do sign something?
Do I need to do something in debug mode?
Or does it depend on the version?

I am using Samsung S2.

like image 216
user1848385 Avatar asked Nov 23 '12 19:11

user1848385


People also ask

How do I force uninstall a program on android?

To uninstall most apps, find the app you want to say goodbye to in your apps list. Long press the app and then tap More info. Then, tap uninstall. Say goodbye to the app and it'll be off your phone in a few moments.


2 Answers

I assume that you enable developer mode on your android device and you are connected to your device and you have shell access (adb shell).

Once this is done you can uninstall application with this command pm uninstall --user 0 <package.name>. Where 0 is ID of main user in Android system. This way you don't need to root your device.

Here is an example how I did on my Huawei p10 lite device.

# gain shell access $ adb shell  # check who you are $ whoami shell  # obtain user id $ id uid=2000(shell) gid=2000(shell)  # list packages $ pm list packages | grep google                                                                                                                                                          package:com.google.android.youtube package:com.google.android.ext.services package:com.google.android.googlequicksearchbox package:com.google.android.onetimeinitializer package:com.google.android.ext.shared package:com.google.android.apps.docs.editors.sheets package:com.google.android.configupdater package:com.google.android.marvin.talkback package:com.google.android.apps.tachyon package:com.google.android.instantapps.supervisor package:com.google.android.setupwizard package:com.google.android.music package:com.google.android.apps.docs package:com.google.android.apps.maps package:com.google.android.webview package:com.google.android.syncadapters.contacts package:com.google.android.packageinstaller package:com.google.android.gm package:com.google.android.gms package:com.google.android.gsf package:com.google.android.tts package:com.google.android.partnersetup package:com.google.android.videos package:com.google.android.feedback package:com.google.android.printservice.recommendation package:com.google.android.apps.photos package:com.google.android.syncadapters.calendar package:com.google.android.gsf.login package:com.google.android.backuptransport package:com.google.android.inputmethod.latin  # uninstall google play services (warning: take backup first!) pm uninstall --user 0 com.google.android.gms 
like image 127
Lukasz Dynowski Avatar answered Oct 16 '22 05:10

Lukasz Dynowski


Yes, mobile device management would bring its own problems, but i bet 'Failure' is a dos2unix problem. On my Linux machines, adb is appending a DOS newline which causes 'Failure' because uninstall thinks the CR character is part of the package name. Also remove '-1.apk' from the end of the package-1.apk filename.

adb root adb shell pm list packages pm uninstall com.android.chrome 

In my case, i have a phone that is in permanent 'Safe mode' so only apps under /system/app/ have a chance of running. So i install them to get the .apk files copied off, then uninstall in bulk and copy to /system/app/, wipe the /cache and reboot. Now i have more apps running even though in safe mdoe.

# adb root # pm list packages -3 > /root/bulkuninstall.txt # vi /root/bulkuninstall.txt  and check ^M characters at end of each line.       If ^M, then must run dos2unix /root/bulkuninstall.txt.      Remove '-1.apk' using vi search and replace:           :%s/-1\.apk//g     Or sed...  # cp /data/app/* /storage/sdcard1/APKs/ # for f in `cat /root/bulkuninstall.txt`; do echo $f; pm uninstall $f; done; #  # echo Now remount system and copy the APK files to /system/app/ # mount | grep system # mount -o remount,rw /dev/block/(use block device from previous step)  /system  # cp /storage/sdcard1/APKs/* /system/app/ # reboot 

wipe cache power on.

like image 34
rjt Avatar answered Oct 16 '22 04:10

rjt