问题一:应用研发平台EMAS线上环境apk是加固过,要发布热更新生成的jar需要加固后来生成更新的jar吗?
问题二:热更新成功了 但是每次杀死app 再打开 都要重新请求权限。怎么回事?
回答一:https://help.aliyun.com/document_detail/445625.html?spm=a2c4g.434887.0.0.19ec2cf0bqn8QK
回答二:什么权限-此回答整理自钉群“应用研发平台EMAS开发者交流群”
在应用研发平台EMAS中,如果您的线上环境APK已经进行了加固处理,那么生成热更新的JAR文件时,并不需要再次对JAR文件进行加固。
EMAS的热更新功能主要是针对应用程序的代码和资源文件进行增量更新。当您生成热更新的JAR文件时,它会包含与您已加固的APK版本相匹配的补丁内容。这些补丁只会影响到应用程序的代码和资源,而不会修改应用程序的加固层。
因此,您可以直接使用应用研发平台EMAS提供的热更新工具来生成热更新的JAR文件,而无需再次对JAR文件进行额外的加固处理。
请注意,当您发布热更新时,确保将生成的热更新文件(JAR)上传到EMAS平台,并按照相关文档和指南进行发布和分发。这样,您的用户将能够通过EMAS的热更新功能安全地获取和应用最新的补丁内容,而无需重新下载整个APK文件。
如果您有特定的安全需求或对热更新过程有其他额外的要求,请参考EMAS的官方文档或联系EMAS的支持团队,以获取更准确和具体的指导。
对于问题一:
EMAS线上环境的APK如果是加固过的,那么热更新生成的JAR包也需要进行相同方式的加固,然后再生成更新用的JAR包。
线上环境的安全加固方式,热更新包也需要保持一致,否则可能会造成热更新失败或出现其他问题。
一般来说,正式环境的APK都是要进行加固的,所以热更新包也要按照相同规则加固后再使用。
对于问题二:
热更新后每次杀死APP再重新请求权限,是因为热更新会导致APP状态重置。
请求权限的代码逻辑会再次执行,所以会重新请求权限,这是正常现象。
可以在权限请求代码里加上判断,如果用户已经授权过则不再请求。
也可以利用共享优先来持久保存权限状态,避免重复请求。
还可以参考权限请求的最佳实践,提供更好的用户体验。
您好!对于您的第一个问题,如果您在应用研发平台EMAS线上环境apk上加固过,那么在发布热更新生成的jar时,需要加固后来生成的jar。因为热更新是在原有的应用基础上进行修改,而不是重新打包一个新的应用。所以,如果您没有加固后来生成的jar,那么这个jar就是没有加固过的,可能会存在安全漏洞。
对于您的第二个问题,如果每次杀死app再打开都要重新请求权限,可能是因为您没有在AndroidManifest.xml中添加权限。请在AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。