android70apk
A. Android apk 系统签名
因工作需要对系统的wifi和以太网进行配置,需要获取到系统权限以后才能进行操作,因此研究了下对apk 进行系统签名以获取系统权限,其实本来打算如果root可以的话直接通过root的方式(设备已经root),后来找了半天发现没有api进行修改,无奈只能进行系统签名了,有童鞋知道root方式修改不妨告诉我一下。
这些文件可以问系统厂商获取,如果是原生系统可以到系统源码目录下获取。
如果报以下的错误 ,这时候就用到准备的libconscrypt_openjdk_jni.so 文件
为了检测我们的应用是否已经签名成功 可以获取系统权限,看看能否获取到。
结果:
在上一种方式中,我们成功对我们的apk进行了系统签名,并且能使用系统权限,但是必须每次打包出apk再进行签名 对调试很不方便,下面我们可以生成带有系统签名的签名文件,在项目中使用,就不需要每次手动进行签名。
bubble可以替换为自己喜欢的名称,这一步要输入密码,我尝试输入其他不行,只能输入android。
bubble 可替换为自己喜欢的password和alias
到这里 两种对app进行系统签名的方式完成,如有不足,欢迎指出.
B. baidu_android.apk是什么文件
_android.apk是网络安装包。
1、APK是AndroidPackage的缩写,即Android安装包(apk)。APK文件盒SymbianSis或Sisx的文件格式差不多。
2、通过将APK文件直接传到Android模拟器或Android手机中,执行并安装。apk文件和sis一样,把androidsdk编译的工程打包成一个安装程序文件,这个文件的格式为apk。
3、APK文件其实是zip格式的一个压缩包,但后缀名被修改为apk,通过UnZip解压后,就可以看见Dex文件,Dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。
4、在Android平台中dalvikvm的执行文件被打包为apk格式,最终运行时就会被加载器解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,拥有很多限制,将apk文件传到/system/app文件夹下会发现执行是不受限制的。
5、安装的文件不是这个文件夹,而在androidrom中系统的apk文件默认会放入这个文件夹,拥有着root权限。
C. 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
D. 写好的android项目怎么打包成Apk文件
1.)生成keystore
按照下面的命令行 在C:Program FilesJavajdk1.6.0_10in>目录下,输入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
参数意义:-validity主要是证书的有效期,写100000天;空格,退格键 都算密码。
命令执行后会在C:Program FilesJavajdk1.6.0_10in>目录下生成android.keystore文件。如图-1
最终生成的apk文件
E. 反编译修改Android apk的版本号
准备工作完毕后,开始反编译apk。
1.将你要反编译的apk放到apktoo.bat的同一文件夹下,然后cd到这个目录,执行以下命令:
其中debug.apk为你要反编译的apk的名字,替换一下即可
其中dst.apk为打包后生成的apk。
其中 debug.keystore 为你自己的签名文件, debug 为签名文件的 keyAlias 。
然后输入密码就行, dst_signed.apk 为签名后生成的apk文件
执行完后,出现如下命令即代表成功
F. Android apk 安装相关的几个目录
/data/local/tmp 目录是转为android studio 安装应用程序保留的目录
android studio 安装apk时 首先将apk push 到/data/local/tmp目录下
如,翻译机的/data/app/com.sogou.teemo.translate.launcher 如下:
Android 设备的CPU类型通常分以下几种
以64位为app为例,/data/app/package/lib/arm64目录如下:
翻译机/data/data/com.sogou.teemo.translate.launcher 如下: