Android项目配置系统签名

作者: 一笑小先生 | 来源:发表于2019-11-04 11:24 被阅读0次

    简述

    公司开发一款产品,需要在应用内打开谷歌浏览器,并向浏览器网页中编辑框提交文本并执行回车事件,这时候我们想到了Instrumentation。

    Instrumentation接口原本是用来对软件进行测试而留出来的,但是可以模拟按键,前提是应用处于前台,当应用处于后台时,会提示

    Injecting to another application requires INJECT_EVENTS permission
    

    提示没有 INJECT_EVENTS这个权限。没则加之,在AndroidManifest.xml文件里面添加该权限,再运行,问题还是没有解决。

    网上各种google各种百度,最后在stackoverflow
    解决的方案有一种是需要将我们的应用userId修改成系统级别,即在manifest添加:

    android:sharedUserId="android.uid.system"
    

    配置系统签名

    1. 准备

    • 下载keytool-importkeypair工具
    • Android证书文件
      文件路径:Android/build/target/product/security,包括platform.pk8和platform.x509.pem

    2. 生成keystore文件

    将keytool-importkeypair、platform.pk8和platform.x509.pem文件放在同一个目录下,执行如下命令,会生成platform.keystore文件:

    sh keytool-importkeypair -k android.keystore -p wangyy2019 -pk8 platform.pk8 -cert platform.x509.pem -alias wangyy
    
    • -k 表示生成keystore文件名
    • -p 表示新生成的keystore的密码是什么,这里为wangyy2019
    • -pk8 表示要导入的pk8文件的名称,可以包括路径,pk8文件用来保存private key的,是个私钥文件。
    • -cert 表示要导入的证书文件,和pk8文件在同一个目录,pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的,这种文件格式里面不仅可以存储数字证书,还能存各种key。
    • -alias 表示给生成的android.keystore取一个别名,这个名字只有我们在签名的时候才用的到,这里我们生成的文件名是platform。

    这里演示mac电脑操作流程,我把下载的keytool-importkeypair与platform.pk8和platform.x509.pem放到Downloads/keytok目录下

    android系统签名.png

    此时,keytool目录下已自动生成android.keystore文件

    3. AndroidManifest.xml修改

    在项目的AndroidManifest.xml添加android:sharedUserId="android.uid.system"

    4. Android Studio配置keystore

    ① 拷贝刚生成的android.keystore文件到项目工程目录下(和app目录同一级)

    ② 在项目工程的app/build.gradle 的android层级下添加:

        signingConfigs {
            Sign {
                keyPassword 'wangyy2019'
                storePassword 'wangyy2019'
                keyAlias 'wangyy'
                storeFile file('../android.keystore')
            }
        }
    

    然后是

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                // 添加release版本签名
                signingConfig signingConfigs.Sign
                    }
                }
            }
            // 添加debug版本签名
            debug {
                signingConfig signingConfigs.Sign
            }
        }
    
    

    至此,我们的打包的应用已经是系统签名下的应用了。

    相关文章

      网友评论

        本文标题:Android项目配置系统签名

        本文链接:https://www.haomeiwen.com/subject/wkgrbctx.html