I've got Coolpad Porto S, which is running Android 5.1. The apps I have been trying to reinstall were com.android.vending and com.google.android.webview (I don't have concrete evidence but after uninstalling it I am unable to access any browser application like duckduckgo or even steam) by using "pm uninstall -k --user 0 APP".
I've been trying to install those back using apks I got from apkmirror, but if I do through my phone or through adb they appear in the app list as "Downloaded", however they're also "Not installed for this user". I tried installing them through using "adb install -r app.apk" command, then going into "adb shell" mode and using "pm install -r --user 0 app.apk", but still same result. If I don't use the -r option, it just gives me INSTALL_FAILED_ALREADY_EXISTS error.
If it helps, upon doing "pm enable --user 0 com.android.vending" it gives me "Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=4418, uid=2000, package uid=10015" error.
My phone is not rooted. Anyone got any ideas?
Edit: After tinkering about for a bit, I am still having a ton of issues with doing that. If it helps, I found the base apk location for the webview app. It didn't work trying to "pm install -r --user 0 directory", because INSTALL_FAILED_DEXOPT, but I managed to get the crash in logcat.
E/installd( 263): DexInv: --- END '/data/app/com.google.android.webview-1/base.apk' --- status=0x0100, process failed
I/PackageManager( 777): Dexopt done on: com.google.android.webview
W/PackageManager( 777): Package couldn't be installed in /data/app/com.google.android.webview-1
W/PackageManager( 777): com.android.server.pm.PackageManagerException: scanPackageLI
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.scanPackageDirtyLI(PackageManagerService.java:6343)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.scanPackageLI(PackageManagerService.java:5635)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.replaceSystemPackageLI(PackageManagerService.java:11107)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.replacePackageLI(PackageManagerService.java:10917)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.installPackageLI(PackageManagerService.java:11432)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService.access$2800(PackageManagerService.java:248)
W/PackageManager( 777): at com.android.server.pm.PackageManagerService$6.run(PackageManagerService.java:9278)
W/PackageManager( 777): at android.os.Handler.handleCallback(Handler.java:815)
W/PackageManager( 777): at android.os.Handler.dispatchMessage(Handler.java:104)
W/PackageManager( 777): at android.os.Looper.loop(Looper.java:194)
W/PackageManager( 777): at android.os.HandlerThread.run(HandlerThread.java:61)
W/PackageManager( 777): at com.android.server.ServiceThread.run(ServiceThread.java:46)
D/PackageParser( 777): isGmoROM() return false
I/PackageManager( 777): Linking native library dir for /system/app/WebViewGoogle
I/PackageManager( 777): Perform pre-dex opt for package: com.google.android.webview
I/PackageManager( 777): Installation done for package: null
V/PackageManager( 777): + starting restore round-trip 20
V/PackageManager( 777): No restore - queue post-install for 20
V/PackageManager( 777): Handling post-install for 20
I/art ( 777): Explicit concurrent mark sweep GC freed 28070(2MB) AllocSpace objects, 23(1188KB) LOS objects, 14% free, 22MB/26MB, paused 1.836ms total 161.529ms
I/art ( 9195): System.exit called, status: 1
I/AndroidRuntime( 9195): VM exiting with result code 1.
Not sure if it helps, but here it is.
pm install-existing com.google.android.webview
– the APKs are still on the device, you just made them unavailable to the specified user. – Izzy Jun 16 '21 at 22:20