phhusson / treble_experimentations

Notes about tinkering with Android Project Treble
3.39k stars 655 forks source link

[Android 8.0 CAF devices] Broken usagestats, leading to broken Android #207

Open jeanrivera opened 6 years ago

jeanrivera commented 6 years ago

When trying to access usagestats (happen mostly with gapps, and needs an active internet action), system_server crashes. This has been reproduced on HTC U12+ and Asus Zenfone 5Z

phhusson commented 6 years ago

Do you have magisk, or no-verity, or no-fileencryption installed or something like that? That's completely stock boot and vendor? How did you factory reset? Stock recovery?

jeanrivera commented 6 years ago

Do you have magisk, or no-verity, or no-fileencryption installed or something like that? That's completely stock boot and vendor? How did you factory reset? Stock recovery?

No Magisk stock boot.img stock vendor.img I used, fastboot boot twrp.img to factory reset wipe data and install system.img from booted twrp not a permanent flash, this device does not have a recovery partition for permanent twrp i have to patch stock boot .img so I decided just to fastboot boot, instead of flashing twrp, if there is any other log I can provide let me know

phhusson commented 6 years ago

So, there are two issues there. First one, is that since HTC kernel doesn't support exfat (I guess this is done using fuse in stock ROM), vold doesn't consider it. This means that, when there is an exfat sdcard inserted, framework declares an external storage with null UUID, which crashes many apps. This is an issue i've already hit a lot of times, that needs to be really fixed.

Then, another crash is inside usagestats. It can't be initialized for some unknown reason (iptables-restore returns an error). But there is a graceful exit for that, so I guess AOSP is supposed to support that. Those are probably related: 04-04 09:25:40.362 1156 1156 E Netd : Unable to create netlink socket: Protocol not supported^M 04-04 09:25:40.362 1156 1156 W Netd : Unable to open qlog quota socket, check if xt_quota2 can send via UeventHandler^M

But then later, part of UI tries to access to those info, and then crashes because the service isn't properly initialized: 09-19 13:13:28.483 1489 1520 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.ui^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.app.usage.UsageStatsManagerInternal.isAppIdle(java.lang.String, int, int)' on a null object reference^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.isUidIdle(NetworkPolicyManagerService.java:3859)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsULInner(NetworkPolicyManagerService.java:4144)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsUL(NetworkPolicyManagerService.java:4132)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsUL(NetworkPolicyManagerService.java:4107)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.updateRulesForTempWhitelistChangeUL(NetworkPolicyManagerService.java:3833)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService.access$3800(NetworkPolicyManagerService.java:291)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.net.NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl.onTempPowerSaveWhitelistChange(NetworkPolicyManagerService.java:4890)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.DeviceIdleController.addPowerSaveTempWhitelistAppDirectInternal(DeviceIdleController.java:1885)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.DeviceIdleController$LocalService.addPowerSaveTempWhitelistAppDirect(DeviceIdleController.java:1325)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.am.ActivityManagerService.pushTempWhitelist(ActivityManagerService.java:25737)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(ActivityManagerService.java:2165)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:65)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.ServiceThread.run(ServiceThread.java:44)^M 09-19 13:13:28.483 1489 1520 E AndroidRuntime: at com.android.server.UiThread.run(UiThread.java:43)^M

Preet23 commented 5 years ago

Is there any workaround for this? It's giving me crash at SetupWizard. Logs: https://del.dog/aoscp_crash Edit: It was fixed in the patches

Pierre2324 commented 4 years ago

which patch fixed it @Preet23 ? Getting this also on Pocophone f1 on MIUI EU Rom only and on my kernel only. Kernel supports EXFAT.

*** FATAL EXCEPTION IN SYSTEM PROCESS: android.ui java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.app.usage.UsageStatsManagerInternal.isAppIdle(java.lang.String, int, int)' on a null object reference at com.android.server.net.NetworkPolicyManagerService.isUidIdle(Unknown Source:25) at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsULInner(Unknown Source:43) at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsUL(Unknown Source:53) at com.android.server.net.NetworkPolicyManagerService.updateRulesForPowerRestrictionsUL(Unknown Source:7) at com.android.server.net.NetworkPolicyManagerService.updateRulesForTempWhitelistChangeUL(Unknown Source:34) at com.android.server.net.NetworkPolicyManagerService.access$3800(Unknown Source:0) at com.android.server.net.NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl.onTempPowerSaveWhitelistChange(Unknown Source:38) at com.android.server.DeviceIdleController.addPowerSaveTempWhitelistAppDirectInternal(Unknown Source:162) at com.android.server.DeviceIdleController$LocalService.addPowerSaveTempWhitelistAppDirect(Unknown Source:7) at com.android.server.am.ActivityManagerService.pushTempWhitelist(Unknown Source:47) at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(Unknown Source:345) at android.os.Handler.dispatchMessage(Unknown Source:21) at android.os.Looper.loop(Unknown Source:207) at android.os.HandlerThread.run(Unknown Source:28) at com.android.server.ServiceThread.run(Unknown Source:12) at com.android.server.UiThread.run(Unknown Source:8)