- With the global rollout of Blackberry OS 10.3.2.2876 many (if not all) Blackberry users are encountering serious problems with the Android runtime. This post summarizes the technical findings of my research and hopefully will help Blackberry to fix the problem.
PROBLEM DESCRIPTION
Android apps that are installed with Amazon Store, Play Store, Snap or any other method cannot be removed correctly. Even though the app icon will be removed from the BB desktop, the app remains installed in the Android runtime.
The effect can be reproduced with any uninstallation method:
1. Long press the icon on BB desktop and then hit dustbin icon
2. Blackberry Settings > App Manager > Device Monitor > Storage > Appname -> Hit dustbin icon
3. Directly in Android Settings > Apps > Downloaded > Uninstall
4. In Play Store > AppName > Uninstall
With all methods, the Android runtime immediately crashes, leaving the app installed in the filesystem of the runtime.
The effect can be verified by installing the following tool:
http://homepage.bluewin.ch/simonsmit...etwork-1.0.apk
1. Remove an Android app with any method listed above
2. Install the tool, run it and hit "More Android Settings"
3. Go to apps > Downloaded to see all installed Android apps -> Your app is NOT removed.
ANALYSIS
Logfiles of the Android runtime show, that PackageManager, which is part of the Android runtime, crashes before the files are correctly removed. It seems that the root cause is a security issue. The following logs show the uninstallation process for a test app called "com.blub". The app was first installed by copying the apk file directly to the device and then running the installer.
Code:Analysis: PackageManager being launched I/ActivityManager(318894300): START u0 {act=android.intent.action.UNINSTALL_PACKAGE dat=package:com.blub cmp=com.android.packageinstaller/.UninstallerActivity (has extras )} from pid 319607037 I/ActivityManager(318894300): Start proc com.android.packageinstaller for activity com.android.packageinstaller/.UninstallerActivity: pid=320266464 uid=10104 gids={50104, 1028, 1015} I/QNXNavigatorClient(318894300): PackagesOpenedRunnable: [com.android.packageinstaller] I/ActivityManager(318894300): Displayed com.android.packageinstaller/.UninstallerActivity: +682ms I/ActivityManager(318894300): START u0 {act=android.intent.action.VIEW cmp=com.android.packageinstaller/.UninstallAppProgress (has extras)} from pid 320266464 I/QNXNavigatorClient(318894300): PackagesOpenedRunnable: [com.android.packageinstaller] I/ActivityManager(318894300): Displayed com.android.packageinstaller/.UninstallAppProgress: +221ms Analysis: PackageManager attempting to close com.blub and remove the files I/ActivityManager(318894300): Force stopping package com.blub appid=12023 user=-1 Analysis: PackageManager fails to remove applibrary directory W/PackageManager(318894300): Couldn't delete native library directory /data/app-lib/com.blub Analysis: PackageManager crashing W/dalvikvm(318894300): threadid=21: thread exiting with uncaught exception (group=18241970) E/AndroidRuntime(318894300): *** FATAL EXCEPTION IN SYSTEM PROCESS: PackageManager E/AndroidRuntime(318894300): java.lang.NullPointerException Analysis: KeyStore is involved E/AndroidRuntime(318894300): at android.security.KeyStore.clearUid(KeyStore.java:305) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.removeKeystoreDataIfNeeded(PackageManagerService.java:9721) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.removePackageDataLI(PackageManagerService.java:9324) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.deleteInstalledPackageLI(PackageManagerService.java:9429) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.deletePackageLI(PackageManagerService.java:9535) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.deletePackageX(PackageManagerService.java:9174) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService.access$3700(PackageManagerService.java:178) E/AndroidRuntime(318894300): at com.android.server.pm.PackageManagerService$7.run(PackageManagerService.java:9108) E/AndroidRuntime(318894300): at android.os.Handler.handleCallback(Handler.java:730) E/AndroidRuntime(318894300): at android.os.Handler.dispatchMessage(Handler.java:92) E/AndroidRuntime(318894300): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(318894300): at android.os.HandlerThread.run(HandlerThread.java:61) I/Process (318894300): Sending signal. PID: 318894300 SIG: 9 Analysis: Android Runtime completely crashing W/Lowmemorykiller(318496900): system server is killed, kill everything ... W/Lowmemorykiller(318496900): init is killed, kill everything ... E/PPSObject(319488037): Unexpected disconnect /pps/services/android/status?wait,delta,f=fullscreen+keyboardShown+keyboardSize
With the Android runtime from 10.3.2.2813, the Security settings can be called as expected and without any error:
1. Run cobalt-MobileNetwork app (link is at top of post)
2. Hit "More Android Settings"
3. Go to Security and try to open the dialog
Normally, this will display the Security settings of the Android runtime, as shown below:
On OS 10.3.2.2876, the security dialog can not be opened. The dialog immediately crashes with the log entries shown below. Again we have a NullPointerException and again KeyStore is involved.
Code:I/ActivityManager(295309362): START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings (has extras)} from pid 300650750 W/dalvikvm(300650750): threadid=1: thread exiting with uncaught exception (group=112ba970) E/AndroidRuntime(300650750): FATAL EXCEPTION: main E/AndroidRuntime(300650750): java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.SubSettings}: java.lang.NullPointerException E/AndroidRuntime(300650750): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790) E/AndroidRuntime(300650750): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819) E/AndroidRuntime(300650750): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2266) E/AndroidRuntime(300650750): at android.app.ActivityThread.access$600(ActivityThread.java:141) E/AndroidRuntime(300650750): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) E/AndroidRuntime(300650750): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(300650750): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(300650750): at android.app.ActivityThread.main(ActivityThread.java:5121) E/AndroidRuntime(300650750): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(300650750): at java.lang.reflect.Method.invoke(Method.java:525) E/AndroidRuntime(300650750): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) E/AndroidRuntime(300650750): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) E/AndroidRuntime(300650750): at dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime(300650750): Caused by: java.lang.NullPointerException E/AndroidRuntime(300650750): at android.security.KeyStore.isHardwareBacked(KeyStore.java:296) E/AndroidRuntime(300650750): at com.android.settings.SecuritySettings.createPreferenceHierarchy(SecuritySettings.java:249) E/AndroidRuntime(300650750): at com.android.settings.SecuritySettings.onResume(SecuritySettings.java:448) E/AndroidRuntime(300650750): at android.app.Fragment.performResume(Fragment.java:1738) E/AndroidRuntime(300650750): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:919) E/AndroidRuntime(300650750): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) E/AndroidRuntime(300650750): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1039) E/AndroidRuntime(300650750): at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1850) E/AndroidRuntime(300650750): at android.app.Activity.performResume(Activity.java:5297) E/AndroidRuntime(300650750): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780) E/AndroidRuntime(300650750): ... 12 more W/ActivityManager(295309362): Force finishing activity com.android.settings/.SubSettings W/ActivityManager(295309362): Force finishing activity com.android.settings/.Settings W/ActivityManager(295309362): Activity pause timeout for ActivityRecord{155b7038 u0 com.android.settings/.SubSettings} W/ActivityManager(295309362): Activity destroy timeout for ActivityRecord{15591798 u0 com.android.settings/.Settings} W/ActivityManager(295309362): Activity destroy timeout for ActivityRecord{155b7038 u0 com.android.settings/.SubSettings}
From this analysis, I must assume that it must be some kind of security issue that prevents Android apps from being uninstalled. Maybe Blackberry tightened security in the runtime, producing unwanted/unforseen effects. Let's hope that Blackberry can fix this asap.
QUICK FIX
Community member Conite came up with the solution to revert the Android runtime back to the one from 2813. This will fix the issue and Android app will uninstall normally again. It is highly recommended to implement that quick fix and to turn OFF Auto update in Blackberry Software update until a final solution is available.
1. Sideload the two files in this package with Sachesi:
https://mega.nz/#!9JIhFIyJ!GYnFXMeLD...bjpSCZBeHP1ueQ
2. Turn OFF Autoupdate in Blackberry Settings > Software Update
BLACKBERRY TAKING ACTION
Blackberry is now describing the issue in their knowledge base. Thanks to Deckard79 for raising the problem to Blackberry. The currently proposed workaround is to do a security wipe to uninstall Android apps. They also note, that reinstalling an Android application will reintroduce this issue.
Unable to uninstall Android applications after updating to BlackBerry 10 OS version 10.3.2
You are welcome to post more findings here.Last edited by Cobalt232; 01-23-16 at 06:14 AM.
01-13-16 12:07 PMLike 109 -
-
- yes thanks for your in deep description on how to solve the Android drama.
Glad I have non Android apps installed at all even the sys-android.shell-xxx.bar ist deleted of my device, so no way any Android app, not even the ports from bbw get a chance to run.
Biggest mistake BlackBerry ever made was to introduce the ability to run Android apps with BB10 in the 1st place.
wouldn't even drop a tear if BB would decide to take the A-RT out of the BB10 entirely the way they did with the BBM-Meetings app already.
Posted via -Classic SQC100-1 / 10.3.++01-13-16 12:22 PMLike 4 - This is my dream. A BlackBerry phone without android crap.
I do no use android software on my bb10, so no need for the A-RT. No need for it to exist, or drain my battery waiting to never be used.
Now that the sheep-level consumers have their Priv (what a stupid, pretentious name imho) and can flappy bird their lives away, give us loyalists a true BlackBerry.
One without 'droid turds.01-13-16 12:45 PMLike 6 - Cobalt, that's a great analysis btw!
For those unfamiliar with Sachesi, this may help:
1) download from here:
https://github.com/xsacha/Sachesi/releases
2) install on your computer
3) run Sachesi
4) plug in your device, and wait for connection
5) unzip the two old Runtime bars linked to in the OP
6) Unclick "only install newer apps" in Sachesi
7 ) drag both bar files into Sachesi
8 ) once complete, reboot device
Don't forget to turn off auto-updates so the 2876 Runtime does not get put right back on.Last edited by conite; 01-21-16 at 08:15 PM.
01-13-16 12:56 PMLike 31 - there is one more issue with Android app's...
well in the beginning of BB OS10 (three years ago) the A-RT was only there to be able to run Android-PORTS made available in BBW as a work around and to extend the amount of app's for the new OS.
So any Android APK that is installed via SNAP or any other source not supported by BB, is simply not under the responsibility of BlackBerry but by the user who trying to play around with the capabilities of the system to actual install such app's no need to blame BB now for not supporting proper uninstall of non-supported app's .
Well ok as far it gets to Amazon app installed crap... yeah ok BB made a big mistake as I mentioned before.
Posted via -Classic SQC100-1 / 10.3.++01-13-16 12:59 PMLike 2 - Cobalt, that's a great analysis btw!
For those unfamiliar with Sachesi, this may help:
1) download from here:
https://github.com/xsacha/Sachesi/releases
2) install on your computer
3) run Sachesi
4) plug in your device, and wait for connection
5) unzip the two old Runtime bars linked to in the OP
6) Unclick "only install newer apps" in Sachesi
7 ) drag both bar files into Sachesi
8 ) once complete, reboot device
one of the rare helpful attempted, again thanks for that, hopefully your post will help...
Posted via -Classic SQC100-1 / 10.3.++Ursus Rufus likes this.01-13-16 01:15 PMLike 1 - Cobalt and Conite thank you!!! You guys are fantastic. You guys related to Conan?
My fix is to not delete or update any Android apps until the fix is made. Maybe I will resort to Conite's solution if no fix is soon forthcoming.
Passport SE Ursus Rufus likes this.01-13-16 02:21 PMLike 1 - THE OP is right on with this analysis. I would also add that the new Android Runtime seems to not fully support at least on of the Android apps that I had on my phone, to-wit, WeMo. The WeMo app no longer finds the lights that it is designed to turn on and off and, as stated by the OP, I was unable to delete that app after finding out that it was no longer usable. I ended up having to do a security wipe of the phone and a reload of the OS to get rid of the offending app. While I was at it, I decided to completely discontinue using Android apps. What I then found was a fantastic reduction in the amount of power that the phone uses in a resting state. I do not think I will ever go back to loading Android apps on my Z30. I did not use them very often anyway.01-13-16 03:11 PMLike 0
- If you do not have a single Android app installed on your phone, why are you here? You don't need or like Android apps on your phone; that is fine, your prerogative. Some of us do. You believe allowing Android apps is the worst thing BB ever did, that is your opinion. Some of us, actually know how to manage both Android and BBOS native apps. Not an issue for us.
Again, you have every right to not want Android apps on your phone. Just wondering, why are you here?01-13-16 07:15 PMLike 9 - If you do not have a single Android app installed on your phone, why are you here? You don't need or like Android apps on your phone; that is fine, your prerogative. Some of us do. You believe allowing Android apps is the worst thing BB ever did, that is your opinion. Some of us, actually know how to manage both Android and BBOS native apps. Not an issue for us.
Again, you have every right to not want Android apps on your phone. Just wondering, why are you here?
Via Pasta CB1001-13-16 07:20 PMLike 3 - I downloaded some games from snap after installing the games it's get downloading but it's not download. Always shows downloading error. Just now I installed two games(gun ship battle,mission impossible rogue nation) from snap it's also getting error message! I'm using snap and I didn't install stuffs like blackberry google I'd, google play services, play store.
Thanks guys
Posted via CB1001-13-16 09:10 PMLike 0 - I downloaded some games from snap after installing the games it's get downloading but it's not download. Always shows downloading error. Just now I installed two games(gun ship battle,mission impossible rogue nation) from snap it's also getting error message! I'm using snap and I didn't install stuffs like blackberry google I'd, google play services, play store.
Thanks guys
Posted via CB1001-13-16 09:25 PMLike 0 -
- I downloaded some games from snap after installing the games it's get downloading but it's not download. Always shows downloading error. Just now I installed two games(gun ship battle,mission impossible rogue nation) from snap it's also getting error message! I'm using snap and I didn't install stuffs like blackberry google I'd, google play services, play store.
Thanks guys
Posted via CB1001-13-16 11:27 PMLike 0 - My z10 crashed after trying to uninstall an android app, after reboot no android app opens anymore.. normally I receive my new PP SE, wil kot do the update untill solution. For the z10 I will try the quick fix this afternoon. Thanks Cobalt and conine for all your hard work!
Posted via CB1001-14-16 12:35 AMLike 0 - Thanks alot Cobalt and Conite for the info about this update and how to solve this temporary problem.
*UPDATE: so I sideloaded the 2 android.bar files to downgrade me back. After that I disable autoupdate from the OS but the phone found me another update of 85MO, my question now is this update is actualy the replace of the corect android.bar files with the other buggy android.bar files?
Attachment 387712
Attachment 387713Last edited by mihai92_mvp; 01-14-16 at 01:35 AM.
01-14-16 01:19 AMLike 0 -
- Forum
- BlackBerry 10 Phones & OS
- BlackBerry 10 OS
OS 10.3.2.2876 Android Runtime analysis
Similar Threads
-
Android Voice Dialer
By ryengjoe in forum BlackBerry PrivReplies: 5Last Post: 03-01-16, 09:21 AM -
How Can I Root My Android Player?
By the_radeon in forum More for your BlackBerry 10 Phone!Replies: 6Last Post: 01-16-16, 11:57 PM -
10.3.2.2836 problem
By yuezaifengxiao in forum BlackBerry Q10Replies: 3Last Post: 01-14-16, 12:34 AM -
Android Player and Battery Life
By waxler900 in forum BlackBerry PassportReplies: 2Last Post: 01-13-16, 12:13 PM
LINK TO POST COPIED TO CLIPBOARD