目前小弟厂里有需求,给我们自己的应用需要静默安装权限,通过了解有两种方式,第一是 root、 第二就是通过系统签名在 AndroidManifest 中添加 android:sharedUserId="android.uid.system" 标签,可以获取隐藏系统 API 安装权限。
第一中 root 方案直接被领导否掉了,只能用第二条。
就是通过系统签名安装带有 uid.system 的应用,一开始用源码中的签名文件签名在模拟器上安装成功,并且完美实现需求。
不料后面在手机真机上运行时却安装不上,报错提示:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
后来查了 android:sharedUserId 相关机制,根据这个博客 https://blog.csdn.net/jiangwei0910410003/article/details/51316688
结论:Android 中是不允许相同的 uid 的不同签名的应用。
鉴于我们无法拿到手机 ROM 厂商的签名,所以小弟只能另辟蹊径,新的思路就是先 ROOT 手机,然后提取手机中的 services.odex 文件反编译成 smali 之后修改校验签名的方法,然后重新打包,push 到手机里,破坏签名校验机制,然后移除 ROOT。
但是本人一直从事应用层开发,反编译打包等只知皮毛,不能掌握,所以希望在站内找一位对这个领域熟练的朋友帮助完成;看过检验签名部分的源码,推断可行。
文笔不行,流水账,抱歉了。
协助完成反编译打包 push 手机中,暂定感谢费 600
手机系统为 6.0
VX 同 ID
第一中 root 方案直接被领导否掉了,只能用第二条。
就是通过系统签名安装带有 uid.system 的应用,一开始用源码中的签名文件签名在模拟器上安装成功,并且完美实现需求。
不料后面在手机真机上运行时却安装不上,报错提示:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
后来查了 android:sharedUserId 相关机制,根据这个博客 https://blog.csdn.net/jiangwei0910410003/article/details/51316688
结论:Android 中是不允许相同的 uid 的不同签名的应用。
鉴于我们无法拿到手机 ROM 厂商的签名,所以小弟只能另辟蹊径,新的思路就是先 ROOT 手机,然后提取手机中的 services.odex 文件反编译成 smali 之后修改校验签名的方法,然后重新打包,push 到手机里,破坏签名校验机制,然后移除 ROOT。
但是本人一直从事应用层开发,反编译打包等只知皮毛,不能掌握,所以希望在站内找一位对这个领域熟练的朋友帮助完成;看过检验签名部分的源码,推断可行。
文笔不行,流水账,抱歉了。
协助完成反编译打包 push 手机中,暂定感谢费 600
手机系统为 6.0
VX 同 ID