Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1372059
  • 博文数量: 478
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4833
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 11:12
文章分类

全部博文(478)

文章存档

2019年(1)

2018年(27)

2017年(21)

2016年(171)

2015年(258)

我的朋友

分类: Android平台

2016-03-23 11:31:06

 我们知道,如果一个应用程序想要使用系统的方法,那么就需要给这个应用程序签名,相当于授权。
    给程序进行platform、media、shared签名的方法分别如下:
(1)platform签名:
AndroidManifest.xml的manifest节点中添加 android:sharedUserId="android.uid.system",
Android.mk中增加  LOCAL_CERTIFICATE := platform
(2)shared签名:
AndroidManifest.xml的manifest节点中增加android:sharedUserId="android.uid.shared",
Android.mk中增加LOCAL_CERTIFICATE := shared
(3)media签名:
AndroidManifest.xml的manifest节点中增加 android:sharedUserId="android.media",
Android.mk中增加 LOCAL_CERTIFICATE := media
    由于需要在Android.mk中增加信息,我们暂时在Android源码中编译生成apk包。具体的操作方法如下:
(1)在Android源码中选择一个APK程序,作为需要签名的程序,我选择/xxx/packages/apps下的一个程序,copy并更名为SignTest。
(2)将当前APK应用添加platform签名,首先在AndroidManifest.xml文件中添加信息,如:
          package="com.mediatek.weather3dwidget" android:sharedUserId="android.uid.shared">
(3)在Android.mk文件中添加信息,如:
LOCAL_EMMA_COVERAGE_FILTER := +com.mediatek.weather3dwidget.* -com.mediatek.weather3dwidget.R
LOCAL_CERTIFICATE := shared
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/../../../frameworks/opt/ngin3d/inflater/res $(LOCAL_PATH)/res
(4)进行模块编译,生成一个apk,本示例为SignTest.apk
(5)针对本apk进行platform签名,可以通过签名系统,也可以通过eclipse,或者通过相应的工具。
(6)如果将该应用放置在别的系统中,则会报“INSTALL_FAILED_SHARED_USER_INCOMPATIBLE”的错误,这是签名不一致导致的。
阅读(1248) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~