Closed sgpublic closed 4 months ago
啊? 无法理解为什么会有这种问题,感觉可能是 MIUI / HyperOS 的锅,暂时修不了 两个可能的 workaround,可能可以临时缓解一下:
# version=1
+com.example.package
+com.example.package2
1.1.0 是没问题的,可能从这方面找找线索?
- 在设置里开启“用 Shizuku 获取应用列表”
使用 Shizuku 也是同样原因崩溃,日志如下:
13:28:29.370 LSPosed-Bridge I Crash unexpectedly: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at org.lsposed.hiddenapibypass.HiddenApiBypass.invoke(Unknown Source:102)
at moe.lyniko.hiderecent.utils.AppUtils.getInstalledPackagesAsUser(AppUtils.kt:80)
at moe.lyniko.hiderecent.utils.AppUtils.access$getInstalledPackagesAsUser(AppUtils.kt:15)
at moe.lyniko.hiderecent.utils.AppUtils$appForAllUser$2.invoke(AppUtils.kt:52)
at moe.lyniko.hiderecent.utils.AppUtils$appForAllUser$2.invoke(AppUtils.kt:47)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at moe.lyniko.hiderecent.utils.AppUtils.getAppForAllUser(AppUtils.kt:47)
at moe.lyniko.hiderecent.utils.AppUtils.access$getAppForAllUser(AppUtils.kt:15)
at moe.lyniko.hiderecent.utils.AppUtils$allApps$2.invoke(AppUtils.kt:40)
at moe.lyniko.hiderecent.utils.AppUtils$allApps$2.invoke(AppUtils.kt:33)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at moe.lyniko.hiderecent.utils.AppUtils.getAllApps(AppUtils.kt:33)
at moe.lyniko.hiderecent.utils.AppUtils.access$getAllApps(AppUtils.kt:15)
at moe.lyniko.hiderecent.utils.AppUtils$appsFiltered$2.invoke(AppUtils.kt:107)
at moe.lyniko.hiderecent.utils.AppUtils$appsFiltered$2.invoke(AppUtils.kt:104)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at moe.lyniko.hiderecent.utils.AppUtils.getAppsFiltered(AppUtils.kt:104)
at moe.lyniko.hiderecent.utils.AppUtils.access$getAppsFiltered(AppUtils.kt:15)
at moe.lyniko.hiderecent.utils.AppUtils$parsedApps$2.invoke(AppUtils.kt:117)
at moe.lyniko.hiderecent.utils.AppUtils$parsedApps$2.invoke(AppUtils.kt:116)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at moe.lyniko.hiderecent.utils.AppUtils.getParsedApps(AppUtils.kt:116)
at moe.lyniko.hiderecent.ui.HomeViewKt.getDisplayApps(HomeView.kt:173)
at moe.lyniko.hiderecent.ui.HomeViewKt.access$getDisplayApps(HomeView.kt:1)
at moe.lyniko.hiderecent.ui.ComposableSingletons$HomeViewKt$lambda-1$1.invoke(HomeView.kt:142)
at moe.lyniko.hiderecent.ui.ComposableSingletons$HomeViewKt$lambda-1$1.invoke(HomeView.kt:141)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:117)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
...
Caused by: android.os.BadParcelableException: Failure retrieving array; only received 391 of 526
at android.content.pm.BaseParceledListSlice.<init>(BaseParceledListSlice.java:104)
at android.content.pm.ParceledListSlice.<init>(ParceledListSlice.java:42)
at android.content.pm.ParceledListSlice.<init>(Unknown Source:0)
at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80)
at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78)
at android.os.Parcel.readTypedObject(Parcel.java:4025)
at android.content.pm.IPackageManager$Stub$Proxy.getInstalledPackages(IPackageManager.java:5070)
... 314 more
- 完全不授予“读取应用列表”权限,进入后直接按如下格式导入设置:
导入配置有效。
1.1.0 是没问题的,可能从这方面找找线索?
一个是 targetSdk 33 升到了 34, 对应的 revert 是这个 https://github.com/Young-Lord/hideRecent/actions/runs/7326999689 一个是过滤掉了没有 activity 的包,对应的 revert 是这个 https://github.com/Young-Lord/hideRecent/actions/runs/7327002818
方便试下 ci build 吗?
方便试下 ci build 吗?
target 改 34 没有区别,PackageManager.GET_ACTIVITIES
删掉貌似不是过滤没有 activity 的包的意思,,,删掉之后列表空了
最小化代码如下:MainActivity.kt#L29
...
packageManager.getInstalledPackages(
PackageManager.GET_ACTIVITIES or PackageManager.GET_META_DATA
)
...
在其他机子上跑没问题,就我的小米 14 有这个问题,我把 magisk 刷掉看看
在其他机子上跑没问题,就我的小米 14 有这个问题,我把 magisk 刷掉看看
刷掉也不行,我去社区提一下看是不是系统的问题
方便试下 ci build 吗?
target 改 34 没有区别,
PackageManager.GET_ACTIVITIES
删掉貌似不是过滤没有 activity 的包的意思,,,删掉之后列表空了
啊,我这两个其实指的是 1.1.0 -> 2.0.x 的变化,最新两个 ci 分别是对应撤销这两个更改的版本
PackageManager.GET_ACTIVITIES
删掉后列表空了的话,貌似说明就是这个flag的问题,具体来说是这样的:
只有GET_META_DATA
是不获取activity信息的,这样会显示所有应用——直到下面链接这个commit用GET_ACTIVITIES
获取activity列表
然后我那个ci build只删了flag,忘删对应判空的代码了;但既然没报错,那就说明至少这句没问题
试试最新ci,理想情况是能全部显示
ci build 里 catch 了一下
现在 ci build 的行为是会 fallback 到全部显示,并用 snackbar 通知用户
确实系统问题,小米14 HyperOS 1.0.36.0已不再报错
Android 14(HyperOS 1.0.26.0/小米14),LSPosed 1.9.2,第一次启动正常,授予读取应用列表权限后第二次启动崩溃。
日志是 clone 下来关掉混淆打的,类型和 message 和原本的一样,所以应该跟混淆无关。