sign your own APK on your own OS

1.

在应用程序的AndroidManifest.xml中的manifest节点中加入

  android:sharedUserId="android.uid.system"这个属性。

2.

修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行

3.

用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。

4.

使用目标系统的platform密钥来重新给apk文件签名。

4.1)找到密钥文件

gabby@gabby-desktop:~/work/0PRJ-SEAGATE/GBL8612A01_A/android_qc_l_qrd8939_cs/build/target/product/security$ ls
Android.mk  media.x509.pem  
platform.x509.pem  releasekey.pk8       shared.pk8       testkey.pk8       verity_key  verity.x509.pem
media.pk8  
platform.pk8    README             releasekey.x509.pem  shared.x509.pem  testkey.x509.pem  verity.pk8


4.2)找到签名工具

gabby@gabby-desktop:~/work/0PRJ-SEAGATE/GBL8612A01_A/android_qc_l_qrd8939_cs/out$find -name signapk.jar

./host/linux-x86/framework/signapk.jar


4.3)签名

gabby@gabby-desktop:~/work3/0PRJ-TOSHIBA/Apk_Carson/build_apk_env/out/Amigo$ java -jar signapk.jar platform.x509.pem platform.pk8  Amigo_Carson.apk Amigo_Carson_signed.apk
gabby@gabby-desktop:~/work3/0PRJ-TOSHIBA/Apk_Carson/build_apk_env/out/Amigo$ 


参考信息:

http://blog.csdn.net/xiaoyaovsxin/article/details/8490567

先找到相应的签名文件,文件位置:可以在......\android_project\build\target\product\security中找到media.pk8、media.x509.pem、platform.pk8、platform.x509.pem、shared.pk8、shared.x509.pem、testkey.pk8、testkey.x509.pem等签名文件,对应不同的权限。
自带的签名工具signapk.jar:由......\android_project\out/host\linux-x86\framework/中找到。
然后放到一个文件夹中,签名命令(一定要使用相应的权限,权限可在menufest和mk文件--LOCAL_CERTIFICATE 中相应找到):
java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有对应权限的APK

优化APK:
zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk

查循APK是否优化过:
zipalign -c -v 4 MyDemo.apk


Installation error: INSTALL_FAILED_UID_CHANGED 的解决办法

http://blog.csdn.net/enhancing/article/details/8490473

出现此问题的原因大多是apk冲突造成,解决的办法如下:

1.  Settings -> Applications, 卸载出现问题的apk,重新安装即可。

2. 如果apk无法卸载,则将apk相关文件和相关内容删除(必须是有root权限的手机)。Step:

    (1) 删除可能相关的文件:/data/app(apk file), /system/app/(apk file), /data/data/(data file),

    (2) 除了删除以上文件之外,还需要将/data/system/packages.xml文件中与apk相关的内容全部删除。Step:

         a. adb pull /data/system/packages.xml  ~/Desktop.

         b. 修改pakcages.xml,将与apk相关的packages标签及其内容删除。

         c. adb push ~/Desktop/packages.xml /data/system/.

    (3) 重启手机

    (4) 重新安装apk文件。


一般方法一就能解决问题,方法二算是后补。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值