Android apk如何签名,为什么签名

写这篇博文之前,我看到两篇比较好的文章,里面简单详细地阐述了为什么要对android进行签名,android系统是如何进行签名的,以及签名时需要用到的几个文件来自哪?在这里将链接提供给大家。

Android中如何修改系统时间(应用程序获得系统权限) 

1. android:sharedUserId 它的作用是什么?
     拥有相同user id的多个apk可以配置成运行在同一个进程中。如果把程序的UID配置成“android.uid.system”, 意味着该程序运行在系统进程中,这样就有权限来修改系统时间(就可以使用系统的某些权限了)

2. 配置了android:sharedUserId,程序就可以运行在系统进程中了吗?
     答案是否定的,这时候apk根本不能被安装,log信息会提示“签名不符”,原因是程序要想运行在目标系统进程中还要有目标系统的“ platform.pk8 “  platform.x509.pem”  两个文件, 也就是说如果我们的apk要想安装到SamSung上,那么我们就必须拥有SamSung源码目录中的platform.pk8 “  platform.x509.pem”,用这两个文件签名后的apk才真正可以放入系统进程中。

3.  platform.pk8 “  platform.x509.pem”位于系统源码目录中的什么位置呢?
     它们位于 "build\target\product\security" 目录下。

4.   在对apk文件进行签名之前,我们需要做哪些准备工作?
      三个必须的文件:
      a. 目标系统的platform.pk8 “  platform.x509.pem”两个文件。将这两个文件复制到F:/sign目录
      b.  签名工具signapk.jar , 该文件位于android系统源代码out编译目录下。 同样将这个文件复制到F:/sign 目录下

      我们的应用程序要做的配置:
      c.  我们需要 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
      d.  在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。

5.   好了,进行最后一步,对apk文件进行正式签名。
     命令如下:
    a.  进入F:sign目录
    b.  输入命令:  java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testnew.apk

    总结一句话:要想让我们的程序运行在系统进程中,有2步是必须要做的
    首先: 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性
    其次: 对应用程序进行签名,签名所需文件必须要用目标系统编译后的文件

发布时

开发时

LG

Debug Eclipse

Manufacture(厂商)

Google public key

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值