系统权限获取
打包为APK进行系统签名
对于
部分功能
的访问需要使用到系统权限
,需要 添加android:sharedUserId="android.uid.system"
权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.example.RBTest"coreApp="true"android:sharedUserId="android.uid.system">
- 将
app
编译成 可 安装的APP
编译成功
之后,将app
的后缀名 修改为rar
根据如下操作删除对应
的签名文件
(不删除也可
,此处重新 签名
会进行覆盖
)删除完成
之后 将文件后缀名改为app
创建
app文件夹
并开始书写Android.mk
文件
- 修改
LOCAL_MODULE
名称为自己的名称
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Factorytest
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_DEX_PREOPT := false
LOCAL_CERTIFICATE := platform
LOCAL_PRODUCT_MODULE := true
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#LOCAL_REQUIRED_MODULES :=
#LOCAL_PREBUILT_JNI_LIBS :=
include $(BUILD_PREBUILT)
- 放入文件夹
vendor/rockchip/common/apps/Factorytest
- 使用
mm
执行编译
build/envsetup.sh # 加载环境
lunch # 配置版本
cd vendor/rockchip/common/apps/Factorytest # 进入 文件放入的目录
mm -j$(nproc) # 进行编译
编译结果
如下
- 使用
ADB
向主板中 进行安装即可
(如果有相同包名
的程序
已经安装了,记得对原有包名
的程序进行删除
)。
Android.mk 详解
# mk文件必须由Local_PATH开始,用,用于在开发系统源码tree中查找源文件,宏my-dir由Build Systemt提供,包括Android.mk的目录路径
LOCAL_PATH := $(call my-dir)
# CLEAR_VARS 变量是编译系统
include $(CLEAR_VARS)#这个主要用于是 eng、user还是 userdebug 版本参与编译; optional 值所有版本都参与编译
LOCAL_MODULE_TAGS := optional#编译的java文件文件路径
LOCAL_SRC_FILES := $(call all-java-files-under, app/src/main/java)#需要编译的 AndroidManifest.xml 文件
LOCAL_MANIFEST_FILE := app/src/main/AndroidManifest.xml#编译的资源文件文件路径
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/app/src/main/res#编译出的apk的名称
LOCAL_PACKAGE_NAME := LinuxTest# 使用SDK中隐藏的API参与编译 LOCAL_SDK_VERSION 和 LOCAL_PRIVATE_PLATFORM_APIS 两者仅仅定义一个即可
ifneq ($(PLATFORM_VERSION),8.1.0)
LOCAL_PRIVATE_PLATFORM_APIS := true
endif# 使用原签名
#LOCAL_CERTIFICATE := PRESIGNED#apk 签名使用系统签名
LOCAL_CERTIFICATE := platform# 设置参与编译SDK版本,(若是在Android.mk钟添加该选项,则编译时会忽略源码隐藏的API,故在使用源码hide api后会导致编译失败)
# LOCAL_SDK_VERSION := current# 添加依赖的库,并将依赖库加入到 当前目录下
LOCAL_JAVA_LIBRARIES := javax.obex
LOCAL_STATIC_JAVA_LIBRARIES += user_mode
LOCAL_STATIC_JAVA_LIBRARIES += apache
LOCAL_DEX_PREOPT := falseLOCAL_STATIC_ANDROID_LIBRARIES := \android-support-v4 \android-support-v7-recyclerview \android-support-v7-preference \android-support-v7-appcompat \android-support-v14-preference \android-support-v17-preference-leanback \android-support-v17-leanback \android-arch-lifecycle-extensionsLOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := user_mode:user_mode.jar \apache:org.apache.http.legacy.jarinclude $(BUILD_PACKAGE)
include $(CLEAR_VERS)
include $(call all-makefiles-under,$(LOCAL_PATH))