Android APK调用系统隐藏api

APK调用隐藏api

已调用SerialService为例

1,修改frameworks\base\core\java\android\hardware\SerialManager.java

   添加如下代码:

    public static SerialManager getInstance(Context context){

        mSerialManager = (SerialManager)context.getSystemService(Context.SERIAL_SERVICE);

        return mSerialManager;

}

2,编译代码生成class.jar

   命令:./buildall_userdebug.sh B5528BIO

   编译成功后,会生成

out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar

3,将classes.jar改名为framework.jar导入到android studio中,如图:

          

 

4,在project下的build.gradle下添加如下代码

  

扫描二维码关注公众号,回复: 12396792 查看本文章

 

5,调SerialManager.java--> getInstance()方法

 

调用getSerialPorts() app需要获取到android.permission.SERIAL_PORT权限

 

非系统app获取此权限会报错,需要修改android studio默认配置,如下:

 

然后编译生成apk,将此apk内置到系统中,

  1. Packages/apps/下创建文件夹,添加android.mk文件,并将studio生成的apk导入进去,如图:

      

 

  1. anroid.mk修改编译

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := MyApplicition

LOCAL_MODULE_TAGS := optional 

LOCAL_SRC_FILES := MyApplicition.apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)


LOCAL_PREBUILT_JNI_LIBS := \
	@lib/armeabi-v7a/liben_data_bundle.so \
	@lib/armeabi-v7a/libgnustl_shared.so \
	@lib/armeabi-v7a/libhmm_gesture_hwr_zh.so \
	@lib/armeabi-v7a/libhwrword.so \
	@lib/armeabi-v7a/libpinyin_data_bundle.so


LOCAL_MODULE_PATH := $(TARGET_OUT)/app

LOCAL_CERTIFICATE := platform

LOCAL_DEX_PREOPT := false

LOCAL_PACKAGE_NAME := MyApplicition
LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PREBUILT)

 

  1. device\mediatek\mt6761\device.mk添加宏
PRODUCT_PACKAGES += MyApplicition

 

  1. ./buildall_userdebug.sh B5528BIO

编译成功会在system/app下生成apk

 

猜你喜欢

转载自blog.csdn.net/liu362732346/article/details/102970544