-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(core.manager): 大于API 33,安装插件时,禁止插件文件可写入 #1357
Conversation
看起来CI环境有变化。我修一下。修好我来重新触发这个PR的CI。 |
ok |
另外这个问题怎么复现呢?CI之前也在api 34的虚拟机上跑过自动化测试,没crash。 |
直接跑sample-hello-host,点击按钮“宿主自定义接口的动态化”,如果sample-hello-host的TargetSdk为34会崩溃,如果没有升高TargetSdk,但是运行在34的手机上,会有E等级的错误Attempt to load writable dex file: /data/user/0/com.tencent.shadow.sample.hello.host/files/hello.apk但不会崩溃,所以应该逃过了自动化的测试 |
那需要把自动化测试的host的target升到34来复现问题。 而且加载插件的classloader也需要改吧。 这个项目维护的很低频,我们尽量每个改动都有CI验证才好。 |
整体升级为34的话感觉还有很多其他组件需要修改,你看下分步走还是一次性完整提交比较好,如果一次性提交的话我可能还需要一段时间 |
看是否需要我分多次pull来解决,保证修改的原子性 |
尽量少改动的方式增加target 34的一个冒烟测试, 只测试一个随意的插件用例能通过。
由于插件apk都是BasePluginManager负责解压缩的,所以它应该负责它们禁止可写。 但是PluginManager本身的apk更新应该由更新文件的代码本身禁止文件可写入。 Tencent#1344
abb1bd6
to
d278b76
Compare
我给target 34加了一个冒烟测试。 试着让它跑起来,还好要改动的不多。 你之前的修改不是很合适。 |
我刚好也在改,你说的没错,并且在安装的时候需要置为可写,我看你已经加上了,并且修复了广播的问题 |
Fixed the issue causing crashes due to writable dex files on Android 14. #1344