我有一个(较旧的)Android 应用程序,它的 targetSDK 设置为 19,包含一些本机库(.so 文件),并且在最高 API 23 的设备上运行良好。
在 Android O 设备上运行仍然使用 targetSdk 19 并且几乎没有代码或清单或任何其他类型的更改的构建会引发此警告:
...如果我们尝试使用 targetSdk 26 运行构建,则会变成错误。
现在我们已被要求修复此警告并暂时让应用程序在目标 19 上运行。问题是我们的客户没有这个本机模块的源代码,所以我开始查看这些标头是什么,以及是否可以在没有代码和重建本机库的情况下更改它们。我发现 HT 编辑器允许通过直接编辑 so 文件来更改标志:
我的问题是,直接侵入二进制文件有什么影响,一般我的意思是,我知道可能存在与我的应用程序相关的特定问题。
如果在多台设备上进行彻底的回归测试后发现该应用程序运行良好,那么由于这种黑客攻击而导致它在某个地方意外崩溃的可能性高于因为可能会产生在期间未检测到的错误的常规代码更改测试?
我正在寻找的答案是 - 这是我的客户在生产中使用此应用程序的可行解决方案,以防他们无法从第三方开发人员那里获得正确构建的代码或新库?
我发现一些线程询问有关修复此警告的问题,但没有一个有令人满意的答案,也没有一个涉及直接编辑二进制文件:
Android O(8.0)中“W + E load segments are not allowed”的解决方法</a>
针对具有 W+E 段的 .so 文件的 Android N 警告
如何在没有可写和可执行段的情况下为 Android O 编译 .so?如何设置特定的 ELF 权限?
感谢您的任何意见。