openfoodfacts / smooth-app

🤳🥫 The new Open Food Facts mobile application for Android and iOS, crafted with Flutter and Dart
https://world.openfoodfacts.org/open-food-facts-mobile-app?utm_source=off&utf_medium=web&utm_campaign=github-repo
Apache License 2.0
835 stars 279 forks source link

Several people who installed the app from F-Droid complain that it's impossible to uninstall #4974

Open teolemon opened 9 months ago

teolemon commented 9 months ago

What

https://play.google.com/console/u/0/developers/4712693179220384697/app/4972942602078310258/user-feedback/review-details?reviewId=22c6d8b6-083c-4b6a-ad40-108149b4646f&corpus=PUBLIC_REVIEWS Kim Irvine - Jan 8, 2024, 10:35 - I wish this app had minus stars. It is useless and it won't let me uninstall it. Samsung Galaxy A12 - Android 13

https://play.google.com/console/u/0/developers/4712693179220384697/app/4972942602078310258/user-feedback/review-details?reviewId=fe91772c-772a-47f0-8d5f-b8412f806c86&corpus=PUBLIC_REVIEWS Star ControLH- Jan 8, 2024, 19:07 - Can't uninstall the f-droid version again. Afraid playstore version may have the same problem again also. Don't want to install both for fear of more problems and conflicts Device: Samsung Galaxy Tab S7+ - Android 13

Star ControLH - Jan 8, 2024, 00:26 - Can't uninstall the F-Droid currently..again. I know 4 other people same problem. Afraid to install the Playstore version https://play.google.com/console/u/0/developers/4712693179220384697/app/4972942602078310258/user-feedback/review-details?reviewId=4a7670e7-046f-4ad1-b06b-653cb2c6111f&corpus=PUBLIC_REVIEWS Device: [Samsung Galaxy S20 Ultra 5G - Android version: Android 13 (SDK 33)

Dave King - Nov 19, 2023, 12:49 - (10 upvotes) Unable to uninstall this app as package installer kept failing (though not on other apps being removed). Eventually resorted to Playstore link which seems to have worked but after several resets and unusual error messages so still unsure if it is entirely gone snd, if so, how. Looks like it is either very buggy or malware, and I will not be reinstalling this if it cannot be trusted. I notice another reviewer had a similar issue but treated as entirely unique? It isn't. https://play.google.com/console/u/0/developers/4712693179220384697/app/4972942602078310258/user-feedback/review-details?reviewId=9212526c-ae81-4a00-9537-ccb52c2aae91&corpus=PUBLIC_REVIEWS Device: Samsung Galaxy A13 - Android version: Android 13 (SDK 33)

M123-dev commented 9 months ago

10 upvotes????

I highly doubt that we are malware or so buggy. In fact, we can't even subscribe to uninstall events

  1. We are not system apps/pre-installed
  2. We do not allow to set the app as administrator

So don't know how that could happen, but it seems like some people have it 🤷🏼‍♂️

Maybe it could be fake reviews but always hoping for good in people I believe them

teolemon commented 9 months ago

I think we'll know better if we ask them to take a photo of the app/for additional info. I have little hope, because since some of them are mentioning F-Droid, I would assume tech savviness and would rule out a counterfeit/weaponized version of the app.

g123k commented 9 months ago

The only guess I have may be related to hasFragileUserData: https://gist.github.com/agnostic-apollo/58def38fdb1c90563454974108ae52df

But we need a Samsung with Android 13, it's all what the issues have in common.

(BTW @teolemon we need to update the screenshots on Fdroid)

RudySchockaert commented 8 months ago

I have the same issue on my Samsung Tab 6 Lite with Android 13. If there is something you want me to try or to check, just name it.

g123k commented 8 months ago

I have the same issue on my Samsung Tab 6 Lite with Android 13. If there is something you want me to try or to check, just name it.

If you can check the ADB log from the package manager, it would really help us

RudySchockaert commented 8 months ago

02-02 19:22:51.913 3621 3621 E AndroidRuntime: FATAL EXCEPTION: main 02-02 19:22:51.913 3621 3621 E AndroidRuntime: Process: com.google.android.packageinstaller, PID: 3621 02-02 19:22:51.913 3621 3621 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.packageinstaller/com.android.packageinstaller.UninstallerActivity}: java.lang.SecurityException: Package com.google.android.packageinstaller from UID 10109 blocked by mode 1 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4184) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4340) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2584) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:226) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Looper.loop(Looper.java:313) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8810) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: Caused by: java.lang.SecurityException: Package com.google.android.packageinstaller from UID 10109 blocked by mode 1 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3023) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3007) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2990) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2932) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.usage.IStorageStatsManager$Stub$Proxy.queryStatsForPackage(IStorageStatsManager.java:504) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.usage.StorageStatsManager.queryStatsForPackage(StorageStatsManager.java:213) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.packageinstaller.handheld.UninstallAlertDialogFragment.getAppDataSizeForUser(UninstallAlertDialogFragment.java:68) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.packageinstaller.handheld.UninstallAlertDialogFragment.getAppDataSize(UninstallAlertDialogFragment.java:101) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.packageinstaller.handheld.UninstallAlertDialogFragment.onCreateDialog(UninstallAlertDialogFragment.java:174) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:418) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.Fragment.performGetLayoutInflater(Fragment.java:1322) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1303) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2431) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2210) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2166) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2067) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3057) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3004) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:185) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8665) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8636) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4165) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: ... 12 more 02-02 19:22:51.913 3621 3621 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace: 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.server.usage.StorageStatsService.enforceStatsPermission(StorageStatsService.java:210) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at com.android.server.usage.StorageStatsService.queryStatsForPackage(StorageStatsService.java:350) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.app.usage.IStorageStatsManager$Stub.onTransact(IStorageStatsManager.java:264) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1316) 02-02 19:22:51.913 3621 3621 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:1280) 02-02 19:22:51.913 3621 3621 E AndroidRuntime:

RudySchockaert commented 8 months ago

Hope this is what you need. If you need more, just say the word.

g123k commented 8 months ago

This blocked by mode 1 is a bit strange:

RudySchockaert commented 8 months ago

I installed with Fdroid. I do not have a work profile

package:openfoodfacts.github.scrachx.openfood installer=com.google.android.packageinstaller

g123k commented 8 months ago

OK, thank you. And if you try to uninstall with the command line, is-there any specific error:

adb shell pm uninstall openfoodfacts.github.scrachx.openfood And maybe what's the output of:

adb shell pm dump openfoodfacts.github.scrachx.openfood

RudySchockaert commented 8 months ago

dump.txt

rudys@p51s:~/tmp$ adb shell pm uninstall openfoodfacts.github.scrachx.openfood Success

Now it's gone. If you want me to reinstall and do other tests, I've got time.

g123k commented 8 months ago

dump.txt

rudys@p51s:~/tmp$ adb shell pm uninstall openfoodfacts.github.scrachx.openfood Success

Now it's gone. If you want me to reinstall and do other tests, I've got time.

If it works with the uninstall command line, that's very strange and clearly seems to be an issue with Samsung devices. I clearly need to find a device to better understand

RudySchockaert commented 8 months ago

I just reinstalled from Fdroid and have the same issue. (version: 4.12.0-ZXing-FDroid)

I now also installed from Play Store and that seems to be a different version: 4.12.0+1257-MLKit-GooglePlayStore. Beavior is different. The one from PlayStore first shows some introduction screens. It uninstalls as expected.

Doesn't this look like a packaging issue?

package:openfoodfacts.github.scrachx.openfood installer=com.google.android.packageinstaller FDroid-dump.txt


package:org.openfoodfacts.scanner installer=com.android.vending PlayStore-dump.txt

install permissions: android.permission.FOREGROUND_SERVICE: granted=true

g123k commented 8 months ago

I just reinstalled from Fdroid and have the same issue. (version: 4.12.0-ZXing-FDroid)

I now also installed from Play Store and that seems to be a different version: 4.12.0+1257-MLKit-GooglePlayStore. Beavior is different. The one from PlayStore first shows some introduction screens. It uninstalls as expected.

Doesn't this look like a packaging issue?

package:openfoodfacts.github.scrachx.openfood installer=com.google.android.packageinstaller FDroid-dump.txt

package:org.openfoodfacts.scanner installer=com.android.vending PlayStore-dump.txt

install permissions: android.permission.FOREGROUND_SERVICE: granted=true

No they are 2 versions. Just to be sure of the behavior, with the FDroid version, can you try to uninstall from:

We have mixed feedbacks about errors, with some people also having issues with the Google Play variant. That's why it isn't easy to understand the root cause.

RudySchockaert commented 8 months ago

Uninstall with FDroid app : FDroid.txt

Uninstall from launcher : Launcher.txt

Uninstall from Settings : Settings.txt

I can send you the entire logcat file privately if you'd like. It also contains the installation.

RudySchockaert commented 8 months ago

I also installed from Play Store. Uninstall from launcher: PlayStore-Launcher.txt

Uninstall from Settings: PlayStore-Settings.txt

Uninstall from Play Store: sucessful

g123k commented 8 months ago

I have a Samsung with Android 13 and I have absolutely NO issue to uninstall the app (both from the Google Play and F-Droid).

@RudySchockaert Once the app is "uninstalled", what's the output of the dump command, please?

RudySchockaert commented 8 months ago

Sorry for the delay. Here it is: dump.txt