Wednesday, May 18, 2016

Android 应用签名提权方法

轉自:
http://hubeihuyanwei.blog.163.com/blog/static/28205284201321432453596/


使用android自带的签名工具signapk.jar 以及源码中的platform.x509.pem,platform.pk8 对apk进行重新签名。

   执行:java -jar signapk.jar  platform.x509.pem platform.pk8 old.apk new.apk 执行后new.apk即为签名后的文件。

   (注:执行命令时所有文件这里放在同一目录下,如果不在同一目录请修改路径)。

  文件platform.x509.pem和platform.pk8我们可以在源码的 build/target/product/security中找到。signapk.jar 可以编译build/tools/signapk/ 得到。

5.签名后就可以安装使用了

====================
platform.x509.pem和platform.pk8的用处

很多网友可能需要访问一些系统敏感的设置信息,如果没有Root权限如何解决呢? platform.x509.pem和platform.pk8可以让你获得系统权限,Android在系统账户安全中使用了Linux的ACL控制方式,通过在每个App中使用sharedUserId设置即可共享系统账户权限,比如android:sharedUserId="android.uid.system" 这样就是用了system这个uid了。

  platform.x509.pem和platform.pk8我们可以在platform/build/target/product/security中找到,如果你的固件使用的Android官方标准的key编译的,可以通过signapk.jar来使用这个系统key/cer来签名的你的apk。使用方法比较简单java -jar SignApk.jar platform.x509.pem platform.pk8 cwj.apk cwj_signed.apk 这行就代表,将cwj.apk签名,签名后的cwj_signed.apk就是拥有系统权限的apk了。如果网友找不到signapk.jar,Android123提示大家可以在/platform/build/tools/signapk/下编译即可。

  当然Android开发网提示如果部分开发者在编译系统时使用的并非GIT源码中的platform.x509.pem platform.pk8可能造成在该目标固件中无法正确安装,当然了这两个文件就是我们普通的key/cert而已,只是作为平台名称有些改变。


No comments: