前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓系统签名方法2则

安卓系统签名方法2则

原创
作者头像
谭广健
修改2020-01-16 17:59:42
1.8K0
修改2020-01-16 17:59:42
举报
文章被收录于专栏:谭广健的专栏

最近一个安卓的项目,本来是使用安卓板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。

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档