我们知道,如果一个应用程序想要使用系统的方法,那么就需要给这个应用程序签名,相当于授权。
给程序进行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) |