Android APK的簽名有助于提高應(yīng)用的安全性,避免被第三方篡改;并能夠通過(guò)簽名來(lái)獲取一些簽名等級(jí)的系統(tǒng)接口調(diào)用權(quán)限。本文以IDO-EVB3020開(kāi)發(fā)板為例,介紹如何生成系統(tǒng)的簽名文件和在Android Studio 中配置APK簽名。如果只是APP開(kāi)發(fā)者,可以跳過(guò)第一節(jié),直接使用創(chuàng)建好的簽名文件配置 Android Studio。
IDO-EVB3020基于RK的PX30四核開(kāi)發(fā)板,主頻高達(dá) 1.5 GHz采用 Mali-G31 MP2 GPU,支持H.265等多格式 1080P 60fps 視頻解碼;支持MIPI-CSI 攝像頭接口,支持10.1寸MIPI屏,7/8/10.1寸LVDS屏;支持以太網(wǎng),4G/WIFI/藍(lán)牙無(wú)線(xiàn)通信;板載4路RS232+2路RS485;預(yù)留1路CAN總線(xiàn),4麥克風(fēng)陣列。適用于工業(yè)HMI,智能設(shè)備顯控,智能家居。
了解IDO-EVB3020更多詳情資料可查看規(guī)格書(shū):IDO-EVB3020 產(chǎn)品手冊(cè)
創(chuàng)建簽名文件
簽名需要用到的系統(tǒng)簽名文件 platform.x509.pem 和 platform.pk8 位于 SDK build/target/product/security 目錄,通過(guò) keytool-importkeypair 工具轉(zhuǎn)換為jks簽名文件
工具鏈接:https://github.com/getfatday/keytool-importkeypair
工具使用方法:
Android Studio 工程簽名配置
a. 在工程根目錄一個(gè)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
}
}
簽名驗(yàn)證
以網(wǎng)絡(luò)調(diào)用為例,未簽名的APK在配置 CONNECTIVITY_INTERNAL 運(yùn)行時(shí)系統(tǒng)會(huì)提示缺少相關(guān)的接口調(diào)用權(quán)限。
neither?user?10060?nor?current?process?has?android.permission.connectivity_internal
而簽名后的APK,則可以成功調(diào)用系統(tǒng)網(wǎng)絡(luò)設(shè)置接口。