美文网首页
Apk签名相关

Apk签名相关

作者: andforce | 来源:发表于2017-07-17 10:52 被阅读73次

开发中,Apk签名是一件不大也不小的事,如果你做过微博相关的开发,你可能遇到如下情景:

用Eclipse或者AS直接点run生成的apk跑在手机上根本不能授权成功,每次需要导出release版本,很烦.

如果你基于系统源码开发或者二次开发系统预置App,你的流程可能是:

mm 或者 mmm 编译出apk,之后再push 到/system/app/ 下,或者用adb install -r 安装到手机.
否根本无法安装,因为签名不一样.

因此我搜集整理了如下内容,解决了以上两个难题,任何app都可以直接再IDE中直接run,并debug.

日常开发

修改Eclips或者Android Studio的默认签名文件

通常情况下,我们debug版本的apk和正式release的apk签名是不一样.特别开发一些有签名限制
的App的时候,就造成了调试上的不方便.

如何修改?

  • Eclipse

Eclips -> Window -> Preference -> Androi -> Buil.
Custom debug keystore 指定自己的 debug.keystore 就可以了.(注意签名文件的名字
不必是debug.keystore).

  • Androi的 Studio
android {
    signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }
    }
}

疑问?

如何创建自己的debug.keystore?

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000
// 这样你就创建了一个 debug.keystore

如何把现有签名文件,转换成Eclipse或Android Studio可用的debug.keystore?

假如你现在的签名文件是:my.keystore.

  • 修改my.keystore 的密码为:android
keytool -storepasswd -keystore my.keystore
  • 修改my.keystorealias为:androiddebugkey
keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
  • 修改alias 的密码为:android
keytool -keypasswd -keystore my.keystore -alias androiddebugkey

执行完上面三步,你的debug.keystore 就创建完成了,替换上去就行.

系统源码开发

源码签名文件在哪?

SOURCE_CODE/build/target/product/security/

$:ls
media.pk8       platform.pk8       README    shared.pk8       signapk.jar  testkey.x509.pem
media.x509.pem  platform.x509.pem  Root.zip  shared.x509.pem  testkey.pk8  update.zip

但如果你在一家手机厂商工作,厂商一般不会直接用而是会进行定制:

SOURCE_CODE/vendor/CUSTOM_VENTER_NAME/security/

$: ls
media.pk8       platform.pk8       releasekey.pk8       shared.pk8       testkey.pk8
media.x509.pem  platform.x509.pem  releasekey.x509.pem  shared.x509.pem  testkey.x509.pem

如何用系统签名文件签名apk?

java -jar platform.x509.pem platform.pk8 UnSign.apk Signed.apk

zipalign优化apk

zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk

是否用zipalign优化过

zipalign -c -v 4 MyDemo.apk

如何把platform.x509.pem platform.pk8 转成debug.keystore?

  • 生成shared.priv.pem
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
  • 生成pkcs12
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
// 如果生成的`debug.keystore`要用在Eclipse中使用,请输入密码:`android`,否则请输入自己的签名即可.
  • 生成debug.keystore
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

相关文章

  • 封装Apk签名工具

    将android apk签名的的方式封装成一个工具,通过SignConfig.json配置文件相关参数签名apk。...

  • 获取apk的签名信息

    在接入第三方功能时,经常要注册提交apk的签名信息 (sha1签名)?,下面列出相关步骤。 获取apk签名信息的步...

  • Apk签名相关

    开发中,Apk签名是一件不大也不小的事,如果你做过微博相关的开发,你可能遇到如下情景: 用Eclipse或者AS直...

  • Android 日常用到的一些命令

    一、签名相关 apksigner对apk进行签名 说明:apksigner.jar位于SDK目录的build-to...

  • APK 签名打包那些事

    APK 的自动签名 apk 的签名方式共有两种,分别是 手动签名 和 自动签名。所谓手动签名,就是 build =...

  • Android签名过程详解

    1、本文主要内容 基础知识 手动签名apk 签名工具源码解析 总结 为了保证apk的安全性,必须对apk进行签名。...

  • APK加固

    APK签名之keytool生成keystore和jarsigner签名apk网址::http://www.ttta...

  • apk签名验证和数字签名原理

    一、Android apk的签名文件 1.1、apk 签名文件 android apk解压之后有如下几个文件 其中...

  • Android获取签名信息(SHA256、MD5、SHA1)

    通过已有APK获取签名信息 获取所有APK签名信息keytool -printcert -jarfile C:\U...

  • Android 签名备份

    apk签名备份

网友评论

      本文标题:Apk签名相关

      本文链接:https://www.haomeiwen.com/subject/eksfkxtx.html