相机删除自动闪光灯:
vendor/mediatek/proprietary/packages/apps/Camera2/feature/setting/flash/res/layout/flash_option.xml
在对应的
android:id="@+id/flash_auto"
加个
android:visibility="gone"
桌面删除搜索框(google)等:
vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/config/FeatureFlags.java
public static final boolean QSB_ON_FIRST_SCREEN = true;
改成false
其他也是如此,如果已经删除了这个应用,但是这里边没改,还是会出现这个搜索框,只不过仅仅就是个搜索框,啥功能也没有,launcher3自己为了避免这种情况发生,写了一个壳吧。所以删了QuickSearchBox应用后,还要在这false
在10,Q版本的代码里面也叫BaseFlags.java
预置应用可卸载:
vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_system_list.txt
把应用包名加上就行
com.android.email
这个文件是在base/services/core/java/com/mediatek/server/pm/PmsExtImpl.java调用
先是定义变量
private static final File REMOVABLE_SYS_APP_LIST_SYSTEM = Environment
.buildPath(Environment.getRootDirectory(), "etc", "permissions",
"pms_sysapp_removable_system_list.txt");
然后buildRemovableSystemAppSet方法中
执行
sGetRemovableSystemAppFromFile(sRemovableSystemAppSet,
REMOVABLE_SYS_APP_LIST_SYSTEM);
所以真正变成可卸载的是sGetRemovableSystemAppFromFile
至此就预置应用可卸载了,同理还有两个文件
pms_sysapp_removable_vendor_list.txt
pms_sysapp_removable_list_bak.txt
这两个文件里面加包名也是一样的,分开三个文件就是好区分,实际上一样,所以如果遇到有预置应用可卸载,这三个文件有一处有写到那就可卸载
如果写了还无法卸载,那就在apk的编译mk里面改,强制内置到可卸载目录
LOCAL_PATH := $(call my-dir)
$(shell mkdir -p $(TARGET_OUT_VENDOR)/operator/app/speak)
$(shell cp $(LOCAL_PATH)/speak.apk $(TARGET_OUT_VENDOR)/operator/app/speak)
意思是就是创建一个vendor下面的operator/app目录存放这个apk
这个时候如果发现打开apk后会闪退,看log是不是报了avc问题
就在device/mediatek/sepolicy/basic/non_plat/untrusted_app.te
加上
allow untrusted_app system_data_file:file { read open getattr execute };
其他apk的avc权限问题
如果报的/untrusted_app_27,那就在对应的文件名字里改,去搜一下比如在
sepolicy/bsp/non_plat/untrusted_app_27.te
加入
allow untrusted_app_27 aac_drc_prop:file { read open getattr map };
allow untrusted_app_27 usb_device:dir { read open };
像这种无所谓的
device/mediatek/sepolicy/basic/non_plat/
或者device/mediatek/sepolicy/bsp/non_plat/