MTK Android12 预装apk可卸载

news/2025/2/26 15:33:33

文章目录

  • 需求
  • 解决方法
    • 1、device/mediatek/mt6761/device.mk
    • 2、/vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_vendor_list.txt
    • 3、路径:
    • 4、Android.mk

需求

近期,客户需要预装一个apk,同时该apk要可卸载。

解决方法

1、device/mediatek/mt6761/device.mk

需要在该文件中添加:
+PRODUCT_PROPERTY_OVERRIDES += persist.sys.pms_sys_removable=1
+
+ifneq ($(strip $(MTK_BASIC_PACKAGE)), yes)
+  PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_vendor_list.txt:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/pms_sysapp_removable_vendor_list.txt)
+endif

2、/vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_vendor_list.txt

在该文档中将apk的包名添加上

3、路径:

/vendor/mediatek/proprietary/frameworks/base/services/core/java/com/mediatek/server/pm/PmsExtImpl.java
修改如下:

private static final File REMOVABLE_SYS_APP_LIST_VENDOR = Environment
-            .buildPath(Environment.getRootDirectory(), "etc", "permissions",
+            .buildPath(Environment.getVendorDirectory(), "etc", "permissions",
                     "pms_sysapp_removable_vendor_list.txt");

4、Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := LeChang
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

此外,在该文件中可添加:LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app, 也可以将LOCAL_CERTIFICATE := platform中的platform 换为PRESIGNED


http://www.niftyadmin.cn/n/5868891.html

相关文章

希尔排序:突破插入排序的局限

大家好!今天我们要介绍的是一种改进的插入排序算法——希尔排序(Shell Sort)。希尔排序通过“分组插入”的方式,突破了传统插入排序的局限性,大大提高了排序效率。虽然它不是最理想的排序算法,但由于简单且…

JavaScript基础(函数及面向对象)

函数 定义函数 Java定义方法: public 返回值类型 方法名(){ return 返回值 } 定义函数方法一 eg:定义一个绝对值函数 function abs(x) {if (x>0){return x;}else {return -x;}} 调用函数: 注意:一旦执行到return代表函数…

计算机毕设-基于springboot的人工智能领域复合型人才校企协同培养管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Nginx系列-Nginx高可用(主从、主主模式)

文章目录 Nginx系列-Nginx高可用(主从、主主模式)1. 引言2. 高可用架构设计3. 基础环境准备4. Nginx安装5. keepalived安装4. 配置主备模式5. 配置主主(双主)模式6. 注意事项 Nginx系列-Nginx高可用(主从、主主模式) 1. 引言 在单机部署的Nginx环境中,一旦Nginx服务…

Java中的Stream API:从入门到实战

引言 在现代Java开发中,Stream API 是处理集合数据的强大工具。它不仅让代码更加简洁易读,还能通过并行处理提升性能。本文将带你从基础概念入手,逐步深入Stream API的使用,并通过实战案例展示其强大功能。 1. 什么是Stream API…

ROS的action通信——实现阶乘运算(一)

在ROS中除了常见的话题(topic)通信、服务(server)通信等方式,还有action通信这一方式,由于可以实时反馈任务完成情况,该通信方式被广泛运用于机器人导航等任务中。本文将通过三个小节的分享,实现基于action通信的阶乘运…

PXE 安装ubuntu22.04自动判断UEFI或者Legacy引导

UEFI引导安装:https://blog.csdn.net/qq_50247813/article/details/145777563 Legacy引导安装:https://blog.csdn.net/qq_50247813/article/details/145730754 本篇根据上两篇快速部署pxe服务器,并自动判断uefi或者legacy引导 一、服务器必要…

C/C++后端开发面试表述、技术点摸底——基础组件篇

前端时间笔者系统学习了基础组件中的池式结构(包括线程池、内存池、连接池),原子操作,锁,无锁队列,网络缓冲区,定时器设计,分布式锁,有些内容笔者已经总结整理成了相关技…