小米5s plus 8.1通知栏数据快捷开关双卡切换bug

问题描述:小米5s plus(natrium)魔趣8.1,通知栏内卡一卡二移动数据切换,就会造成系统界面停止运行。
当前版本: MK81.0-natrium-201805210945-NIGHTLY
复现步骤: 下拉通知栏 - 移动数据箭头-选择卡

只能传一张图,补张

这个功能我做的,方便提供log吗?

顺便,你当前版本那里写错了。

已更新链接: https://pan.baidu.com/s/1kaLkLWIGt7BQJ2adtyclAw

开发者模式打开,打开USB 调试模式,如果还有这提示,重新插拔一下手机。

https://pan.baidu.com/s/1Bgq8TT5cft4hKMKHyuTZhw
权限不够,上传不了

log 分析

--------- beginning of crash
08:31:07.043 E/AndroidRuntime( 1639): FATAL EXCEPTION: main
08:31:07.043 E/AndroidRuntime( 1639): Process: com.android.systemui, PID: 1639
// crash systemui 进程没有写APN settings 的权限。
08:31:07.043 E/AndroidRuntime( 1639): java.lang.SecurityException: No permission to write APN settings
08:31:07.043 E/AndroidRuntime( 1639): 	at android.os.Parcel.readException(Parcel.java:2004)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.os.Parcel.readException(Parcel.java:1950)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.internal.telephony.ISub$Stub$Proxy.setDefaultDataSubId(ISub.java:913)
// 切换默认数据卡
08:31:07.043 E/AndroidRuntime( 1639): 	at android.telephony.SubscriptionManager.setDefaultDataSubId(SubscriptionManager.java:1230)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.systemui.qs.tiles.DataUsageDetailView.lambda$-com_android_systemui_qs_tiles_DataUsageDetailView_7050(DataUsageDetailView.java:163)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.systemui.qs.tiles.-$Lambda$J1GGz1veHb_EoR2R8PLC40igAts.$m$0(Unknown Source:4)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.systemui.qs.tiles.-$Lambda$J1GGz1veHb_EoR2R8PLC40igAts.onCheckedChanged(Unknown Source:0)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.RadioGroup.setCheckedId(RadioGroup.java:188)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.RadioGroup.-wrap0(Unknown Source:0)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:371)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.CompoundButton.setChecked(CompoundButton.java:174)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.CompoundButton.toggle(CompoundButton.java:127)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.RadioButton.toggle(RadioButton.java:76)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.widget.CompoundButton.performClick(CompoundButton.java:132)
// 点击 radioButton
08:31:07.043 E/AndroidRuntime( 1639): 	at android.view.View$PerformClick.run(View.java:24770)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.os.Handler.handleCallback(Handler.java:790)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.os.Handler.dispatchMessage(Handler.java:99)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.os.Looper.loop(Looper.java:164)
08:31:07.043 E/AndroidRuntime( 1639): 	at android.app.ActivityThread.main(ActivityThread.java:6499)
08:31:07.043 E/AndroidRuntime( 1639): 	at java.lang.reflect.Method.invoke(Native Method)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
08:31:07.043 E/AndroidRuntime( 1639): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
08:31:07.043 E/AndroidRuntime( 1639): 	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:108)
08:31:07.049 W/ContextImpl( 1142): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:966 com.android.server.am.AppErrors.crashApplicationInner:393 com.android.server.am.AppErrors.crashApplication:321 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:14479 com.android.server.am.ActivityManagerService.handleApplicationCrash:14461 
// 显示crash 的dialog
08:31:07.064 I/ActivityManager( 1142): Showing crash dialog for package com.android.systemui u0

注: 上面那段是调用栈,是实际代码执行的倒序

阶段结论

通过systemui 中QSTile 切换默认数据卡时,因为缺少写APN 的权限导致systemui crash。
但是systemui 会自动获得AndroidManifest 里写的权限啊(我认为),而且在设置>应用里面不能单独关闭“系统界面”的某个权限。

下一步

请尝试在应用里面清除“系统界面”的缓存和数据。

1 Like

老哥,你用的哪台手机啊?

我?我用的moto z (griffin)

小米5s plus啊

清除系统界面数据和缓存了,不行啊

我也奇怪了,不知道为什么你的system UI会没有权限。
在设置里面切换默认数据卡没问题?

设置里面可以切换

你不一定非得看到有我的头像才是回复我,这帖子有更新我都看到的。

嗯。:sleeping:

全清重新刷机还是一样

我再查查吧,目前我不知道怎么解决。

对了,你能不能提取出来你的systemui.apk 给我瞧瞧?

是哪个,Android系统?系统界面?魔趣系统?