如何让apk 拥有系统权限

如何让apk 拥有系统权限,修改时间,调用隐藏方法,系统关键重启,静默安装升级卸载应用等系统级app所有的权限

方法一:
  不进入源码编译
1 下载keytool 
  地址:https://github.com/getfatday/keytool-importkeypair

2.app的AndroidManifest.xml 如下定义
  android:sharedUserId="android.uid.system"
  添加这个属性就会有系统app同等的权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等系统级app所有的权限

3.找到源码中系统签名platform.pk8 和 platform.x509.pem
  android原生的 目录下 build/target/product/security
  fsl的目录     device/fsl/common/security

4.生成keystore,方法有两种:

  第一种方法:使用keytool 生成keystore
  将platform.pk8 和 platform.x509.pem 这两个文件和keytool 放在同一个目录(linux 下)
  ./keytool-importkeypair -k ./platform.keystore -p ctk123 -pk8 platform.pk8 -cert platform.x509.pem -alias platform
  ---其中platform.keystore是文件名,ctk123是密码----

  用法:
  ./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]
  
  备注:
  keystore 是Eclipse 打包生成的签名。 jks是Android  studio 生成的签名!
  很多第三方市场,我们上传apk的时候,他们只支持keystore,需要我们把.jks签名转化为.keystore!

  第二种方法:用android提供的signapk 来签名
  signapk 的源代码在"build/tools/signapk"下

  用法;signapk platform.x509.pem platform.pk8 input.apk output.apk
  
  备注:文件名最好用绝对路径,免得找不到

5.android studio 生成带签名的apk
  目录:MyApplication\app\release

方法二:
  Android系统源码的环境下用make来编译(有apk源码)

1. 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。

2.将源码放在packages/apps 下面,删除 /bin 和 /gen 目录

3.创建一个名为 Android.mk文件
  LOCAL_PATH:= $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_MODULE_TAGS := optional
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_PACKAGE_NAME := Test  (Test  是包名)
  LOCAL_CERTIFICATE := platform   (加入这一句 ,拥有系统权限)
  include $(BUILD_PACKAGE) 

  以下是mtk 参考:
  LOCAL_CERTIFICATE := platform
  LOCAL_MODULE_PATH 改为 system/app 或者 system/priv-app
  LOCAL_PATH := $(call my-dir)

  include $(CLEAR_VARS)
  LOCAL_MODULE := Xunfei
  LOCAL_MODULE_TAGS := optional
  LOCAL_SRC_FILES := Xunfei.apk
  LOCAL_MODULE_CLASS := APPS
  LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
  LOCAL_CERTIFICATE := platform
  LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/operator/app
  LOCAL_PROPRIETARY_MODULE := true
  LOCAL_MODULE_OWNER := mtk
  include $(BUILD_PREBUILT)

4.mm编译,生成的apk就有修改系统时间的权限了

5.device/mediatek/common/device.mk中,将 Test 添加到 PRODUCT_PACKAGES 里面。

6.make -j32
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章