内置App的添加
Packages
- 进入apps 文件夹,新建文件夹 newTest,(随便起,但是后面会用到文件夹名)
- 放入对应已经签名过的apk,建议和文件夹名称一样,避免混乱
- 放入Android.mk文件
Device
-
找到对应手机名称文件夹,如pixel5 就是 google文件夹,华为 是huawei
-
找到对应手机带好文件夹 ,比如pixel5代号redfin
-
进入代号文件夹(redfin),找到device/device-代号 .mk
-
pixel5的就是 device-redfin
-
打开device文件,随便找到一个 PRODUCT_PACKAGES 标签后面追加 添加过的文件夹名称 ,比如
PRODUCT_PACKAGES += \ sensors.$(PRODUCT_HARDWARE) \ newTest
Android.mk 编写
资料
编写
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
#注意这里要和对应的apk名称一样
LOCAL_SRC_FILES := newTest.apk
LOCAL_MODULE_CLASS := APPS
#可以为user、eng、tests、optional,optional代表在任何版本下都编译
LOCAL_MODULE_TAGS := optional
#编译模块的名称 这里是文件夹名称
LOCAL_MODULE := newTest
#可以为testkey、platform、shared、media、PRESIGNED(使用原签名),platform代表为系统应用
LOCAL_CERTIFICATE := PRESIGNED
#不设置或者设置为false,安装位置为system/app,如果设置为true,则安装位置为system/priv-app?
LOCAL_PRIVILEGED_MODULE := false
#module的后缀,可不设置
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
# 关闭预编译,不会生成OAT文件
LOCAL_DEX_PREOPT := true
LOCAL_PRODUCT_MODULE := true
include $(BUILD_PREBUILT)
失败的mk
v7a版本
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HomeWork
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#获得apk中 armeabi-v7a 下所有的so
define get-all-libraries-module-name-in-subdirs
$(sort $(shell cd $(LOCAL_PATH) ; rm -rf lib >/dev/null ; unzip $(LOCAL_MODULE).apk 'lib/armeabi-v7a/*.so' -d . >/dev/null ; find -L $(1) -name "*.so"))
endef
ALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/armeabi-v7a)
LOCAL_PREBUILT_JNI_LIBS := $(ALL_LIBRARIES_MODULE_NAME)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
v7a和v8a版本
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mht
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
define get-all-libraries-module-name-in-subdirs
$(sort $(shell cd $(LOCAL_PATH) ; rm -rf lib >/dev/null ; unzip $(LOCAL_MODULE).apk 'lib/armeabi-v7a/*.so' 'lib/arm64-v8a/*.so' -d . >/dev/null ; find -L $(1) -name "*.so"))
endef
#获取 armeabi-v7a 和 arm64-v8a 架构下所有的共享库
ALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/armeabi-v7a lib/arm64-v8a)
LOCAL_PREBUILT_JNI_LIBS := $(ALL_LIBRARIES_MODULE_NAME)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
end 重新编译
- source build/envsetup.sh
- ulimit -S -n 2048
- lunch 对应版本
- m