Android系统开发 编译系统签名的APP
<h1><span style="color: rgba(0, 128, 128, 1)">前言</span></h1><p> 一般情况下,我们使用的签名都是自己生成的Java签名来编译APP. 但是,如果需要开发一些特定设备的APP(对权限有更高的要求,需求一些系统基本的权限,比如让APP可以控制设备的休眠),那就需要编译系统签名的APP.</p>
<p> 首先你还要明白,APP系统签名的文件必需是你当前设备的系统签名文件一致,这种签名文件只有你自己是Android系统开发才能获取到(Rom是你自己打包的).</p>
<p> </p>
<h1><span style="color: rgba(0, 128, 128, 1)">准备工作</span></h1>
<ul>
<li>在github上下载工具 https://github.com/getfatday/keytool-importkeypair<br><br></li>
<li>Android证书文件准备<br>
文件路径:Android/build/target/product/security,包括platform.pk8和platform.x509.pem</li>
</ul>
<p> </p>
<h1><span style="color: rgba(0, 128, 128, 1)">打包系统签名</span></h1>
<h3>生成keystore文件</h3>
<ul>
<li>将keytool-importkeypair、platform.pk8和platform.x509.pem文件放在同一个目录下,执行如下命令,会生成platform.keystore文件:</li>
</ul>
<div class="cnblogs_code">
<pre>sh keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform</pre>
</div>
<ul>
<li>-p 表示新生成的keystore的密码是什么,这里为android</li>
<li>-pk8 表示要导入的pk8文件的名称,可以包括路径,pk8文件用来保存private key的,是个私钥文件。</li>
<li>-cert 表示要导入的证书文件,和pk8文件在同一个目录,pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的,这种文 件格式里面不仅可以存储数字证书,还能存各种key。(有兴趣的可以点击此了解一下)</li>
<li>-alias 表示给生成的platform.keystore取一个别名,这个名字只有我们在签名的时候才用的到,这里我们生成的文件名是platform。这个名字,可以随便取,但是你自己一定要记住。</li>
</ul>
<h1><span style="color: rgba(0, 128, 128, 1)">AndroidManifest.xml修改</span></h1>
<p>AndroidManifest.xml中添加共享系统进程属性,如下(三选一):</p>
<div class="cnblogs_code">
<pre>android:sharedUserId="android.uid.system"</pre>
</div>
<div class="cnblogs_code">
<pre>android:sharedUserId="android.uid.shared"</pre>
</div>
<div class="cnblogs_code">
<pre>android:sharedUserId="android.media"</pre>
</div>
<p><span style="color: rgba(0, 0, 0, 1)">在manifest节点中添加</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">manifest </span><span style="color: rgba(255, 0, 0, 1)">xmlns:android</span><span style="color: rgba(0, 0, 255, 1)">="http://schemas.android.com/apk/res/android"</span><span style="color: rgba(255, 0, 0, 1)">
package</span><span style="color: rgba(0, 0, 255, 1)">="com.y.demoapp"</span><span style="color: rgba(255, 0, 0, 1)">
android:sharedUserId</span><span style="color: rgba(0, 0, 255, 1)">="android.uid.system"</span><span style="color: rgba(0, 0, 255, 1)">></span></pre>
</div>
<h1><span style="color: rgba(0, 128, 128, 1)">打包APP</span></h1>
<p><span style="color: rgba(0, 128, 128, 1)"><span style="color: rgba(0, 0, 0, 1)"> 最后就是按照正常流程打包app了.在菜单栏选择 Build > Generate Signed Bundler or Apk > 点击进入菜单后选择APK > 然后选择你生成的签名文件,输入密码即可.</span><br></span></p>
</div>
<div id="MySignature" role="contentinfo">
<div style="text-align: center">
<p style="color:orange;font-size:16px;" >本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/11410915.html </p>
<div style="color:orange;font-size:16px;">本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。 </div>
</div><br><br>
来源:https://www.cnblogs.com/guanxinjing/p/11410915.html
頁:
[1]