Android : apk系统签名的多种方法

方法一:使用自己的Android签名工具给apk重新签名:

(1)该目录下有 media.pk8、media.x509.pem、platform.pk8、platform.x509.pem、shared.pk8、shared.x509.pem、testkey.pk8、testkey.x509.pem等签名文件,不同的签名文件,对应不同的权限。Android默认的签名文件为testkey.pk8、testkey.x509.pem。

(2) Android自带的签名工具为 signapk.jar, 可以在源码编译目录out中找到,具体路径为:out/host/linux-x86/framework/signapk.jar,签名指令如下:

     java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk   (拷贝到同一目录执行签名)

8.0上验证需要额外的一些参数:

    java -Xmx2048m -Djava.library.path="out/host/linux-x86/lib64" \      (直接在源码根目录执行签名)
    -jar out/host/linux-x86/framework/signapk.jar \
    -w build/target/product/security/platform.x509.pem \
    build/target/product/security/platform.pk8 \
    old.apk new.apk

 方法二:通过Android源码编译成签名apk:

(1)编写Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := app
LOCAL_SRC_FILES := app.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := .apk
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PREBUILT)

(2)将apk放入.mk同目录(命名为app.apk),配置好sdk编译环境后执行mm指令,签名apk生成在:out/target/product/xxxx/system/priv-app/app/app.apk 。

注:LOCAL_CERTIFICATE := platform         表示使用系统签名
  LOCAL_DEX_PREOPT := false    不提前优化,无oat文件

  方法三:Android studio配置签名工具:(1)生成本地key:

(2)下载 keytool-importkeypair 工具

./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]

如:
./keytool-importkeypair -k ./SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo

将修改好的SignDemo.jks更新到android studio原来设置的目录,即可下一步生成签名APK。

生成路径:\xxxx\app\release

原文地址:https://www.cnblogs.com/blogs-of-lxl/p/9233285.html

时间: 2024-10-27 06:22:48

Android : apk系统签名的多种方法的相关文章

android apk的签名和权限问题

一. android apk的签名问题(http://blog.csdn.net/lyq8479/article/details/6401093) 1.为什么要给Android应用程序签名?      如果只能用一句简单的话语来回答这个问题的话,我会说:“这是Android系统所要求的”.      Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来

在 java 1.8.0 版本的环境下,进行 android apk 的签名操作

注:文章参考了 android 开发者社区的签名指引说明文章,但由于在国内 android 开发者社区已经无法正常访问,因此在这里做下记录. 地址:http://developer.android.com/tools/publishing/app-signing.html#considerations 在开发 android 应用程序的时候,到最后程序都需要进行签名后才可以发布,目前针对 android 应用开发的 ide 一般都会自带了签名的功能,例如 android studio.eclip

WPF 获取系统 DPI 的多种方法

原文:WPF 获取系统 DPI 的多种方法 由于 WPF 的尺寸单位和系统的 DPI 相关,我们有时需要获取 DPI 值来进行一些界面布局的调整,本文汇总了一些 WPF 程序中获取系统 DPI 的方法. 首先,定义如下结构体来分别保存 X 方向 和 Y 方向的分量值,通常情况下两个值是一致的. public struct Dpi { public double X { get; set; } public double Y { get; set; } public Dpi(double x, d

读取Android APK文件签名的方法

在微信开放平台等申请API key 和secret时经常要用到apk文件签名,那么如何读取呢? 下面贴一下相关读取源码: 一共两个文件MainActivity和MD5, package com.lcg.gensinature; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; imp

Android APK如何签名

Android项目以它的包名作为唯一标识,如果在同一设备上安装两个相同的应用,后面安装的应用就会覆盖前面安装的应用.为了避免这种情况的发生,我们需要对作为产品发布的应用进行签名. 签名其实有两个作用: (1) 确定发布者的身份.防止别人用相同包名来替换你已安装的程序. (2) 确保应用的完整性.签名会对应用包中的每个文件进行处理,以确保程序包中的文件不会被替换. 在应用的开发和调试阶段,Eclipse的ADT插件或ANT工具会自动生成调试证书,对Android应用签名.但是,如果要正式发布一个A

Android 生成系统签名的KeyStore

应用想要获取系统权限的话就必须要有系统签名,但是在开发一个系统的时候,为了系统的安全性,往往会去改变系统的签名.我们都知道通过platform.pk8 platform.x509.pem和signapk.jar可以对应用进行签名操作,但是这样很麻烦,而且也没办法使用Eclipse中的调试操作了,最简单的方式还是生成keystore然后放在Eclipse里,这样每次编译生成的APK就会自动签上名,方便许多. 下面来简单讲讲如何生成对应系统的系统签名: 1.android 源码目录build\tar

Android APK 手动签名

首先,如果没有签名密钥,先生成密钥: keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 会一路提示你输入密码.签名信息等等,随意输入. 我这里的用户名和密码都是android 然后签名 jarsigner -keystore android.keystore -storepass android -keypass android XXX.apk androi

android apk jarsigner 签名打包

cmd 命令符打包: 规则:  jarsigner -verbose -keystore 签名路径 -signedjar 签名后的apk存放路径  未签名的apk 签名文件的别名 项目如我的项目是: C:\Program Files\Java\jdk1.7.0_45\bin> jarsigner -verbose -keystore C:\Users\jian_zhou\Desktop\d\cmstop.keystore  C:\Users\jian_zhou\Desktop\d\sgin_ne

android Apk 重新签名

1.将key文件和要重新签名的Apk文件放在同一个目录下. 2.cmd cd 到该目录下 3.jarsigner -verbose -keystore abc.keystore -signedjar 123x.apk 123.apk abc.keystore 其中: 第一个abc.keystore是key文件的名称, 第二个abc.keystore的别名. 123x.apk是重新签名后的apk, 123.apk 是原始的apk. 4.输入密码