Android APK的签名有助于提高应用的安全性,避免被第三方篡改;并能够通过签名来获取一些签名等级的系统接口调用权限。本文以IDO-EVB3020开发板为例,介绍如何生成系统的签名文件和在Android Studio 中配置APK签名。如果只是APP开发者,可以跳过第一节,直接使用创建好的签名文件配置 Android Studio。
IDO-EVB3020基于RK的PX30四核开发板,主频高达 1.5 GHz采用 Mali-G31 MP2 GPU,支持H.265等多格式 1080P 60fps 视频解码;支持MIPI-CSI 摄像头接口,支持10.1寸MIPI屏,7/8/10.1寸LVDS屏;支持以太网,4G/WIFI/蓝牙无线通信;板载4路RS232+2路RS485;预留1路CAN总线,4麦克风阵列。适用于工业HMI,智能设备显控,智能家居。
创建签名文件
签名需要用到的系统签名文件 platform.x509.pem 和 platform.pk8 位于 SDK build/target/product/security 目录,通过 keytool-importkeypair 工具转换为jks签名文件
工具链接:https://github.com/getfatday/keytool-importkeypair
工具使用方法:
./keytool-importkeypair -k evb3020.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias evb3020
Android Studio 工程签名配置?
a. 在工程根目录一个signature文件夹,并将evb3020.jks 文件放入该文件夹下;
b. 修改工程根目录的 app/build.gradle 文件,添加signingConfigs和配置buildTypes如下:
android {
compileSdk 32
defaultConfig {
applicationId "com.example.myapplication"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file("../signature/evb3020.jks")
storePassword '123456'
keyAlias 'evb3020'
keyPassword '123456'
}
debug {
storeFile file("../signature/evb3020.jks")
storePassword '123456'
keyAlias 'evb3020'
keyPassword '123456'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
?3 签名验证
以网络调用为例,未签名的APK在配置 CONNECTIVITY_INTERNAL 运行时系统会提示缺少相关的接口调用权限。
neither user 10060 nor current process has android.permission.connectivity_internal
?而签名后的APK,则可以成功调用系统网络设置接口。
更多详细资料请查看:触觉智能 – 深圳触觉智能科技 (industio.com)
|