本人理解apk签名有两种情况,一个是系统签名,一个是发布apk软件到应用市场时的签名,下面说说两者的区别

apk系统签名:是将apk签名成为系统应用,系统应用是不允许被用户卸载的,具有系统进程权限root权限,系统开发经常会将一些apk嵌入 到安卓系统里去编译成系统应用,就像打电话应用,这个应用就是系统应用,是用户卸载不了的

apk发布签名:发布签名是为了验证身份,发布到应用市场首先会判断包名,应用市场里的所有apk都不允许有相同包名的apk,一旦有那么还会验证签名,签名不一致就认为是恶意攻击,拒绝发布;签名一致就认为是版本升级

签名方法:

首先得安装jdk1.7配置好java命令的环境变量,使用命令格式 java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk对apk进行系统签名.命令中signapk.jar在系统代码的out\host\linux-x86\framework目录下,它是编译产生的,需要对系统源码进行编译生成,它的源码在build\tools\signapk\目录;platform.x509.pem(公钥文件)在系统代码build\target\product\security\目录下,platform.pk8(含有公钥的文件)也在这个目录下;old.apk就是需要被签名的apk文件;new.apk就是签名之后的apk文件;命令中的文件最好都使用绝对路径;以上这是通过signapk工具进行签名,其实还可以通过在Eclipse中配置Custom debug keystore,运行时就自动签名了,不需要每次使用命令去签名了;目前公司使用的debug.keystore虽然和C盘.Android目录下的debug.keystore名字一样但是本质有区别;原因是某些apk运行调试时必须使用正式签名,这样很麻烦,可以将正式签名的.keystore文件赋值一份修改成一份自定义调试keystore证书,但是这个keystore文件的密码和alias(别名)以及alias密码都是有规定的,keystore文件密码必须是android,别名必须是androiddebugkey,alias别名密码必须是android;一般开发APP不会使用到android.uid.system这个属性,因为google不会提供这样的系统签名文件给你,各个手机平台系统也是定制的,系统签名文件不会是一样的,除非是自己编译的系统;总结:一句话,使用了android.uid.system这个属性就必须使用目标系统签名,否则无法运行root权限,也就不具有系统进程权限了;关于apk签名其实有两种方式:第一种是通过keytool命令手动生成或者从Eclipse自动生成keystore文件,然后使用jarsigner工具对apk进行签名;还有一种方式就是使用signapk工具来进行apk签名;这两个方式的区别就是前者使用keystore文件,后者使用x509.pem和pk8文件进行签名;

apk系统签名和发布软件签名的理解相关推荐

  1. ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...

    Android应用程序签名 在前一章节里面,通过ionic run使app成功在手机上面跑起来,并且将android-debug.apk放到手机上后发现也能正常的安装,debug版本和release版 ...

  2. android签名方法,Android : apk系统签名的多种方法

    方法一:使用自己的Android签名工具给apk重新签名: (1)该目录下有 media.pk8.media.x509.pem.platform.pk8.platform.x509.pem.share ...

  3. Android进阶-apk系统签名

    一.来源 有时候我们开发一个apk需要系统权限,于是我们便会在apk的AndroidManifest.xml中添加如下属性: android:sharedUserId="android.ui ...

  4. 使用signapk工具给apk系统签名

    使用signapk给apk系统签名: 1.准备signapk.jar文件 查找路径: .\out\host\linux-x86\framework\signapk.jar 2.platform.x50 ...

  5. 安卓应用程序加密,签名和发布

    1.加密,也就是代码混淆,目的呢,就是防止别人使用反编译工作破解.什么是反编译呢,对于安卓来说,就是你把源代码编译成APK,这APK别人能使用,但就是不明白你怎么做出来的,这时他使用反编译,把APK变 ...

  6. Android 应用程序签名、发布

    做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...

  7. android签名打包发布到应用市场

    android签名打包发布到应用市场 一 主题 本篇文章详细介绍android从签名打包到发布到应用市场的流程,以及遇到的问题, 二,版本1.0.0 首先说一下你的apk第一个版本的发布, 1,创建签 ...

  8. 普歌-uniapp安卓打包apk发布软件商城

    一. uniapp安卓打包apk发布软件商城 打包前准备 uni_appid: uniapp的id 秘钥: 生成APP证书时设置的密码 应用包名: uniapp打包时有个安卓包名既应用包名 应用签名: ...

  9. 360签名工具 linux,360apk签名工具-360apk签名工具(qihoo360 apk signer) 1.0 免费版 - 河东下载站...

    360apk签名工具是一款非常出色的apk反编译软件,体积虽小,但是功能上非常专业,对于从事移动开发相关的用户们来说是必不可少的得力工具,有了它再也不用一个一个进行操作了,太浪费时间,360apk签名 ...

  10. Android系统安全 — 5.3-APK V2签名介绍

    1. V2签名原理 1. JAR V1签名是在apk文件(其实是ZIP文件)中添加META-INF目录,即需要修改数据区.中央目录,因为添加文件后会导致中央目录大小和偏移量发生变化,还需要修改中央目录 ...

最新文章

  1. git工作区、暂存区和仓库区
  2. java with关键字_[Java教程]javascript 里面 with 关键字
  3. oracle 数字不用,oracle – Plsql将数字(货币)拼写为意大利货币而不用硬编码的翻译编号...
  4. Java中的String、StringBuffer、StringBuilder的区别和使用范围
  5. NET面试题:C#中的lock关键字有何作用
  6. 工业级交换机大致可以分为哪几类?
  7. 3 张图带你走近蚂蚁mPaaS音视频通话组件
  8. 专业课程设计之客户与服务器程序的同步与通信机制的设计(四)信号量
  9. 【less-6】sqli-labs靶场第六关(类似less-5)
  10. C++、C++-OpenCV、Python、Python-Numpy、MATLAB的除法取余(余数)方法总结
  11. 计算机等级考试网络工程师介绍,全国计算机等级考试网络工程师
  12. 统计数字会撒谎-读书笔记
  13. iWebShop 二次开发之商城后台模板渲染流程
  14. Overland Conveyor Belt Analyst 15.0.19.zip
  15. 八数码问题引发的思考
  16. Nessus下载离线升级包all-2.0 .tar.gz方法
  17. Python3 - seaborn: lmplot(), hue, scattr_kws{}, aspect, height
  18. dedecms模板配置大概流程
  19. linux运行jar文件Invalid or corrupt jarfile错误
  20. Mifare S50控制条件

热门文章

  1. fluent瞬态_瞬态环境
  2. “office for mac”模板文件的目录
  3. 计算机模板是什么意思,Office
  4. 测试两个主机之间的连通性_如何使用知行EDI系统模拟连通性测试?
  5. 固高运动控制卡学习1--运动模式介绍(1)--点位,Gear,Jog,插补
  6. linkedin第三方登陆
  7. Java——数据结构与算法
  8. 用html做网页作品,HTML5实例:用HTML5制作的网页的15个优秀案例
  9. python爬虫:爬东方财富网平安银行历史资金流向并写入MySQL
  10. SIFT算法系列之尺度空间