最近一个安卓的项目,本来是使用安卓板4.2的;但由于生产需求将原来的单板集成到整体(显示触屏+安卓)。由于其提供的样板是6.0。整个程序的主功能运行还可以,就是无法写日志和播放本地视频。于是研究一下,发现原来是他们提供的安卓未root导致的。于是跟供应商联系给root文件,谁知这丫的不给,就给了个安卓的系统签名。。好吧,给系统签名就重新编译吧。但过程不是太顺利,花了差不多一天时间进行处理;总算搞掂,现在分享一下成果吧。
1、加入签名最简单的方法就是二签,就是用原来的签然后换他们给的系统签名。但这个比较麻烦,首先必须在AndroidManifest.xml中加入android:sharedUserId="android.uid.system"这个,但加了这个后调试就不方便,每次编译必须重签才能运行,并且还影响升级。java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
第一种方法简单,但对以后的维护比较麻烦,总不能让用户卸载再重安装吧。。
2、那只能在目前的签名中加入系统签名,这个真的比较麻烦。但麻烦一次,后面就简单了。那怎么做呢?
最大的问题是要在Linux环境下处理,还要注意必须要装有java的环境。。也折腾了很久成功了。最后告诉你Centos也是可以的。。
成功后记得build.gradle(app)中加入signingConfigs。
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.dz.dzzg"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
debug {
storeFile file("../KEY20190711.jks")
storePassword "A1A2A3A4A5"
keyAlias "KEY0"
keyPassword "A1A2A3A4A5"
}
release {
storeFile file("../KEY20190711.jks")
storePassword "A1A2A3A4A5"
keyAlias "KEY0"
keyPassword "A1A2A3A4A5"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation(name: 'serialportutils-release', ext: 'aar')
implementation files('libs/zxing.jar')
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
implementation files('libs/com.baidu.tts_2.3.0.jar')
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。