手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android apk 使用多个签名的问题
Android apk 使用多个签名的问题
摘要:今天在押解APK包的时候,发现一个apk包的签名文件中有2个签名,于是就尝试了一下使用jarsigner命令确实可以使用不同的签名文件对ap...

今天在押解APK包的时候,发现一个apk包的签名文件中有2个签名,于是就尝试了一下

使用jarsigner 命令确实可以使用不同的签名文件对apk进行多次签名,使用代码解析apk包的签名信息确实是有多个签名,测试代码如下:

      String path = "/mnt/sdcard/First_double.apk";
      PackageInfo pi = context.getPackageManager().getPackageArchiveInfo(path, PackageManager.GET_SIGNATURES);
      Log.e(TAG, "sign size:"+pi.signatures.length);
      for (int i = 0; i <  pi.signatures.length; i++)
      {
          Log.e(TAG, "index:"+i+","+pi.signatures[i].toCharsString());
      }

分别单独安装,也是可以正常使用的,但是发现一个问题,这两个apk(一个使用一个签名,一个使用2个签名,其他的完全一致)是无法相互覆盖安装的,返回签名不一致的异常。

我的疑问是,如果这两个APK不能相互覆盖安装,那么多签名存在的意义到底是什么呢?

不知道哪位大神可以解惑,谢谢。

PS:使用的测试手机 是荣耀7,p7

回复讨论(解决方案)

要做apk覆盖要求的是 同包名,同签名

为什么要有签名,这个其实稍微动点歪脑筋就能推测出来,邪恶的我就想过这个问题,我给题主打个比方:

题主开发了一个应用,叫做嘿嘿嘿,包名是com.nb.heiheihei,签名是你保存的xxx.keystore

某一天,嘿嘿嘿火了,我看到了

我照着这个应用也开发了一个版本,也叫嘿嘿嘿,包名也起做com.nb.heiheihei,那么重点就来了,要是不需要签名,那么我把应用发上应用平台,用户一下,一装,ok,题主的嘿嘿嘿被我的嘿嘿嘿覆盖了,不是黄段子。。。( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)

瞎扯了一堆,总结来说,签名就是保证你开发的应用的唯一性的,保证你应用安全的。

                              ——致  图样图森破的题主 要做apk覆盖要求的是 同包名,同签名

为什么要有签名,这个其实稍微动点歪脑筋就能推测出来,邪恶的我就想过这个问题,我给题主打个比方:

题主开发了一个应用,叫做嘿嘿嘿,包名是com.nb.heiheihei,签名是你保存的xxx.keystore

某一天,嘿嘿嘿火了,我看到了

我照着这个应用也开发了一个版本,也叫嘿嘿嘿,包名也起做com.nb.heiheihei,那么重点就来了,要是不需要签名,那么我把应用发上应用平台,用户一下,一装,ok,题主的嘿嘿嘿被我的嘿嘿嘿覆盖了,不是黄段子。。。( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)

瞎扯了一堆,总结来说,签名就是保证你开发的应用的唯一性的,保证你应用安全的。

                              ——致  图样图森破的题主

谢谢你的回复,我关注的核心是一个应用存在多个签名的意义,而不是一个签名

要做apk覆盖要求的是 同包名,同签名

为什么要有签名,这个其实稍微动点歪脑筋就能推测出来,邪恶的我就想过这个问题,我给题主打个比方:

题主开发了一个应用,叫做嘿嘿嘿,包名是com.nb.heiheihei,签名是你保存的xxx.keystore

某一天,嘿嘿嘿火了,我看到了

我照着这个应用也开发了一个版本,也叫嘿嘿嘿,包名也起做com.nb.heiheihei,那么重点就来了,要是不需要签名,那么我把应用发上应用平台,用户一下,一装,ok,题主的嘿嘿嘿被我的嘿嘿嘿覆盖了,不是黄段子。。。( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)

瞎扯了一堆,总结来说,签名就是保证你开发的应用的唯一性的,保证你应用安全的。

                              ——致  图样图森破的题主

谢谢你的回复,我关注的核心是一个应用存在多个签名的意义,而不是一个签名

多签名可能是特殊的渠道版本,为了方便统计量或者啥的.... 你有试过单独使用第二个签名的apk与使用两个签名的apk是否可以覆盖吗?

PS:没有试验过,尝试一下的话,可以验证一下是否第二个签名会覆盖第一个签名。 比如: 有两个开发者做了一款应用, 这款应用后来火了 ,  利益划分的下,要怎么保证双方牵制呢?那就是双重签名

【Android apk 使用多个签名的问题】相关文章:

Android 开发环境配置问题

Android 开发中怎么使用自定义字体

Android中使用sax解析xml文件的方法

Android拍照保存在系统相册不显示的问题解决方法

Android加载图片内存溢出问题解决方法

Android控件系列之CheckBox使用介绍

Android对开机自启动的限制

Android 使用新浪微博SSO授权

android4.0 获取手机IP地址的问题

Android ellipsize的小问题介绍

精品推荐
分类导航