Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android簽名方法詳解

Android簽名方法詳解

編輯:關於Android編程

1. 工具包

文件

2012年09月25日 - 寧靜致遠 - 寧靜致遠的博客

 

2. build-signer.xml文件

<project name="jarsigner" default="signapk" basedir="./">

 

<!-- you project name -->

<property name="project.name" value="Hello"/><!-- 你工程的名稱 -->

 

<property name="project.bin" value="${basedir}/bin"/><!-- 工程Apk所在的目錄 -->

 

<!-- Window下簽名 -->

<property name="signapk.dir" value="E:/項目資料/mytool/"/><!-- 簽名包所在的路徑 -->

<property name="platform.dir" value="${signapk.dir}/security/"/><!-- 簽名包所在的路徑 -->

<property name="apk.unsign" value="${project.bin}/${project.name}.apk"/>

<property name="apk.sign" value="${project.bin}/${project.name}-sign.apk"/>

 

<!-- Linux下簽名

<property name="platform.dir" value="${user.dir}/mydroidsdk/build/target/product/security/"></property>

<property name="signapk.dir" value="${user.dir}/mydroidsdk/out/host/linux-x86/framework/"></property>

<property name="apk.unsign" value="${project.bin}/${project.name}.apk"></property>

<property name="apk.sign" value="${project.bin}/${project.name}-sign.apk"></property>

-->

 

<!-- sign you project apk -->

<target name="only-signapk">

<echo message="signapk......">

</echo>

<java jar="${signapk.dir}/signapk.jar" fork="true">

<arg line="${platform.dir}/platform.x509.pem" />

<arg line="${platform.dir}/platform.pk8" />

<arg line="${apk.unsign}" />

<arg line="${apk.sign}" />

</java>

 

</target>

 

<!-- delete you project apk and rename you project apk -->

<target name="signapk" depends="only-signapk">

<echo message="changeFile......">

</echo>

<delete file="${apk.unsign}" />

<rename src="${apk.sign}" dest="${apk.unsign}" />

</target>

</project>

3. 用法列子

1) 新建Android工程Hello,在AndroidManifest.xml<manifest>中添加android:sharedUserId="android.uid.system”屬性如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.notioni.hello"

android:versionCode="1"

android:versionName="1.0" android:sharedUserId="android.uid.system">

2) build-signer.xml放在工程的跟目錄下,修改

<property name="project.name" value="Hello"/><!-- 你工程的名稱 -->

<property name="signapk.dir" value="E:/項目資料/mytool/"/><!-- 簽名包所在的路徑 -->

 

2012年09月25日 - 寧靜致遠 - 寧靜致遠的博客

3)

 

刷新Hello工程生產apk文件,(注意:eclipse默認在刷新和修改時是不會直接生產apk文件的。所以要修改:

Skip packaging and dexing until export or lauch,取消勾選)

4) 點擊build-signer.xml右鍵【run as】生成簽名的Apk

5) 點擊Hello工程右鍵【Run as】把Apk安裝到手機上

6) Adb shell 進入shell命令,輸入ps查看Hello進程,可以看到Hello工程以System用戶運行

 

2012年09月25日 - 寧靜致遠 - 寧靜致遠的博客

 

 

4. 總結

Apk簽名就是讓Apk以系統中某個用戶的身份運行,可以擁有這個用戶的所有權限,如操作串口,需要擁有system權限,操作電話有關的需要擁有Phone的權限等等

表示簽名成功

2012年09月25日 - 寧靜致遠 - 寧靜致遠的博客

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved