导航:首页 > 操作系统 > androidsignedapk

androidsignedapk

发布时间:2023-01-28 17:34:19

android系统签名apk,让应用获取系统级权限

使用手机的platform平台签名后,能够获取到系统权限。
1、在AndroidManifest.xml设置android:sharedUserId="android.uid.system"。

2、编译通过后,导出未签名的apk。
3、使用\out\host\Linux-x86\framework\signapk.jar \build\target\proct\security\platform.pk8 +platform.x509.pem

4.执行“java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testSigned.apk”做平台签名得到testSigned.apk。
test.apk必须放在上面同一个目录之下。

② 安卓APP在应用市场加固之后怎么重新签名

可以使用jarsigner对未签名的加固包进行签名。

建议使用之前对APP签名时使用的keystore对加固包进行签名

jarsigner-digestalgSHA1-sigalgMD5withRSA-verbose-keystore[your_key_store_path]-signedjar

[signed_apk_name][usigned_apk_name][your_key_store_alias]

your_key_store_path:密钥所在位置的绝对路径

signed_apk_name:签名后安装包名称

usigned_apk_name:未签名的安装包名称

your_key_store_alias:密钥的别名就是你自己创建的.keystore文件

③ Android中APK签名工具之jarsigner和apksigner详解

转自 https://www.cnblogs.com/slysky/p/9780015.html

一.工具介绍

jarsigner是JDK提供的针对jar包签名的通用工具,

位于JDK/bin/jarsigner.exe

apksigner是Google官方提供的针对Android apk签名及验证的专用工具,

位于Android SDK/build-tools/SDK版本/apksigner.bat

不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),

以上两个工具都可以对Android apk包进行签名.

1.V1和V2签名的区别

在Android Studio中点击菜单 Build->Generate signed apk... 打包签名有两种签名选项 V1(Jar Signature) V2(Full APK Signature),

从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);

但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)

V1签名:

V2签名:

V2签名优点很明显:

注意: apksigner工具默认同时使用V1和V2签名,以兼容Android 7.0以下版本

2.zipalign和V2签名

位于Android SDK/build-tools/SDK版本/zipalign.exe

zipalign 是对zip包对齐的工具,使APK包内未压缩的数据有序排列对齐,从而减少APP运行时内存消耗

zipalign -v 4 in.apk out.apk //4字节对齐优化

zipalign -c -v 4 in.apk //检查APK是否对齐

zipalign可以在V1签名后执行

但zipalign不能在V2签名后执行,只能在V2签名之前执行!!!

二.签名步骤

1.生成密钥对(已有密钥库,可忽略)

Android Studio在Debug时,对App签名都会使用一个默认的密钥库:

1.生成密钥对

进入JDK/bin, 输入命令

参数:

提示: 可重复使用此条命令,在同一密钥库中创建多条密钥对
例如: 在debug.keystore中新增一对密钥,别名是release

keytool -genkeypair -keystore debug.keystore -alias release -validity 30000

2.查看密钥库

进入JDK/bin, 输入命令

keytool -list -v -keystore 密钥库名

参数:

例如:
keytool -list -v -keystore debug.keystore

现在debug.keystore密钥库中有两对密钥, 别名分别是androiddebugkey release

2.签名

1.方法一(jarsigner,只支持V1签名)

进入JDK/bin, 输入命令

从JDK7开始, jarsigner默认算法是SHA256, 但Android 4.2以下不支持该算法,

所以需要修改算法, 添加参数 -digestalg SHA1 -sigalg SHA1withRSA

参数:

例如:

用JDK7及以上jarsigner签名,不支持Android 4.2 以下

jarsigner -keystore debug.keystore MyApp.apk androiddebugkey

用JDK7及以上jarsigner签名,兼容Android 4.2 以下

jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey

2.方法二(apksigner,默认同时使用V1和V2签名)

进入Android SDK/build-tools/SDK版本, 输入命令

若密钥库中有多个密钥对,则必须指定密钥别名

禁用V2签名

apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk

参数:

例如:

在debug.keystore密钥库只有一个密钥对

apksigner sign --ks debug.keystore MyApp.apk

在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名

apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk

3.签名验证

1.方法一(keytool,只支持V1签名校验)

进入JDK/bin, 输入命令

keytool -printcert -jarfile MyApp.apk (显示签名证书信息)

参数:

2.方法二(apksigner,支持V1和V2签名校验)

进入Android SDK/build-tools/SDK版本, 输入命令

apksigner verify -v --print-certs xxx.apk

参数:

例如:

apksigner verify -v MyApp.apk

④ Android Studio打包没有Generate signed apk选项

1.点击build栏目-并没有Generate signed apk选项

2.点击file,选中如下图所示Sync Project with Gradle Files

3.如下图所示,Generate signed就会出来

这样就可以打包apk啦,本人也是刚入坑,调试了半天各种查,才误打误撞发现的。

⑤ Android APK编译流程

apk 是Android Package的简写, 在平时的开发过程中,通过点击 Run app 按钮 或者 在命令行中输入

这样Android Studio就会启动构建流程,最终输出一个我们想要的APK。

直达官网介绍

对于小白来说,上面一张图已经可以解释apk的构建过程了,不过对于Andoid开发者而言还需要了解一些更详细的构建过程。

详细的对应步骤 和 使用工具如下:

资源文件(res文件夹下的文件)通过 AAPT(Android Asset Packaging Tool)打包生成R.java类(资源索引表)、.arsc资源文件 和res文件。

resources.arsc 是一个App的资源索引表,通过R.java 文件 和 resources.arsc 可以定位到资源的内存地址,resources.arsc文件的作用是通过一样的ID,根据不同的配置索引到最佳的资源显示在UI中。

AIDL (Android Interface Definition Language), 是Android接口定义语言,是Android提供的IPC (Inter Process Communication,进程间通信)的一种独特实现。
如果有aidl文件,这个阶段会生成对应的Java接口文件。

R.java文件、工程源码文件、aidl.java文件, 在这一步通过javac生成.class文件。

源码.class文件和第三方jar或者library通过dx工具打包成dex文件

Android系统的Dalvik虚拟机的可执行文件为DEX格式,所以这里会将上一步中生成的.class文件 和 引用的第三方jar等过程中的.class 一起通过dx工具打包成dex文件

apkbuilder工具会将所有没有编译的资源、.arsc资源、.dex文件打包到一个完成apk文件中

tips:

apksigner工具会对未签名的apk验证签名。得到一个签名后的apk(signed.apk)

apksigner 是google 退出的V2签名方式
Jarsigner 是之前一直使用的V1签名方式

可以通过在命令行中输入apksigner --help来获取详情信息,如果没有特殊需求,使用下面命令即可完成签名

release mode 下使用 aipalign进行align,即对签名后的apk进行对齐处理

所谓对齐,主要过程是将APK包中所有的资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问apk文件时的速度会更快。对齐的作用主要是为了减少运行时内存的使用。

zipalign是一个android平台上整理APK文件的工具,它对apk中未压缩的数据进行4字节对齐,对齐后就可以使用mmap函数读取文件,可以像读取内存一样对普通文件进行操作。如果没有4字节对齐,就必须显式的读取,这样比较缓慢并且会耗费额外的内存。

参考文章:
Android-Studio配置构建
浅谈Android打包流程
apk打包流程

END!

⑥ Android Studio 没有 Generate Signed APK

我们在调试APK,直接Build是可以正常生成,没有报错,但是当我们将自己的签名文件加上去,就会报错。一般情况下,我们可以在build.gradle中的android{}里面添加一个东西

lintOptions{
checkReleaseBuildsfalse
abortOnErrorfalse
}

详细

⑦ Android studio怎么直接对apk签名

1、对apk的签名需要把项目导入到Android studio软件中,进行点击菜单中“Build”选项,弹出的下拉菜单中的“generate signed APK”.
2、进入到generate signed apk中界面框中,因第一次对apk的签名,就需要先创建签名文件钥匙,点击”create new“的按钮。
3、进行选择钥匙保存的位置,指定到磁盘的位置,然后在文件昵称填入,点击“ok”的选项
4、进入到new key store的界面中,根据界面中提示信息输入内容信息,输入完成之后点击“ok”。
5、钥匙创建完成之后,进行点击"next下一步"操作。

6、进入到这个界面中选择apk生成保存的位置,然后在build type中选择release的选项,然后点击“Finish”的选项,这样就生成到apk的保存路径中。

⑧ Android studio怎么生成签名apk

打开项目以后,点击项目,选择 Build 菜单, 然后选择 Generate Signed APK.

打开生成对话框:
选择 Create new... 按钮, 生成新的Key, 弹出新生成对话框:
首先选择 Key 存储的路径.

可能是有BUG, 在弹出的选择 keystore file 对话框中,需要先输入 File name, 如 ``, 文件后缀名 保持默认的 jks 不变。然后再改变保存的路径(否则输入不了名字).

最后的路径可能是这样的: E:\CODE_ALL\02_GIT_ALL\cncounter-Android\key_store\cncounter-android-key.jks

接着输入密码, 建议不要太简单,也不要太复杂。 此处示例的密码为:
为了简单起见, 所有密码都设置为同一个:
有效时间默认25年,以支撑你的整个APP周期。

Country Code (XX) 应该是 CN,
然后点击OK, 回到生成界面
勾选上记住密码,然后点击下一步.

如果弹出输入密码保护,可以选择留空,不使用这种保护。

点击OK,进入下一步:

选择 release 是发布版本,选择 debug 是调试版本。 此处, 选择 release , 然后点击完成按钮即可。

然后会告诉你生成完毕,可以选择查看:
生成的APK

下次需要生成,只需要从 Build 菜单, 选择 Generate Signed APK 即可。
因为上次选择了记住密码,所以这里不需要记住密码。

然后继续即可。

阅读全文

与androidsignedapk相关的资料

热点内容
手机文档解压之后解压包去哪儿了 浏览:923
java中网络编程重要吗 浏览:683
如何登录别人的服务器 浏览:626
调度系统软件python 浏览:205
微信大转盘抽奖源码 浏览:497
压缩机损坏的表现 浏览:862
同步数据服务器怎么用 浏览:634
163邮箱服务器的ip地址 浏览:50
服务器跟域是什么 浏览:128
rails启动命令 浏览:465
logistic命令怎么用 浏览:738
c语言点滴pdf 浏览:747
linuxrtc编程 浏览:258
linux打包并压缩命令 浏览:644
aes加密的证书格式 浏览:99
oracledbcalinux 浏览:844
酬勤任务app怎么被特邀 浏览:199
android应用文件夹 浏览:1002
平面设计法则pdf 浏览:339
3d圆角命令怎么用 浏览:569