MTK文档

[Android 8.0] AEE 在android o上的变化 以及 提交log需要注意的问题


[DESCRIPTION]
在android o 中, systemimg 和vendorimg 中的daemon 不能直接通信,aee 为此在android O 上做出了一些变化;
导致在提case时,不能在第一时间提供全面的log信息;
一, AEE 的变化:
 1. 架构的改变。
Before:
AEE只存在与system/bin/下,daemon的名字叫debuggerd(debuggerd64)
After:
AEE在system/bin和vendor/bin下各有一套,daemon名字改为:aee_aed(aee_aed64)—system/bin下;aee_aedv(aee_aedv64)—vendor/bin/下

2.不同异常类型DB存放路径

Before:
/data/aee_exp;
/sdcard/mtklog/aee_exp;
After:
JE/ANR/SWT                           db存放在data/aee_exp
KE/HWT/HW_REBOOT/EE/NE   db存放在data/vendor/mtklog/aee_exp
3. 注意 注意:不能手动删除/data/aee_exp, /data/vendor/mtklog/aee_exp 目录:
aee db 存放路径 /data/aee_exp, /data/vendor/mtklog/aee_exp 的selinux标签如下, 这个标签是在init 创建目录的时候打下去的:
  /data/aee_exp(/.*)? u:object_r:aee_exp_data_file:s0
/data/vendor/mtklog/aee_exp(/.*)? u:object_r:aee_exp_data_file:s0
如果删除aee db 的存放目录, 再创建的时候会沿用父目录的selinux 标签( system_data_file),导致aee 没有selinux 权限不能正确产生db(重新开机后,init不会强制更新标签,还是会使用 system_data_file 的签名);
4. user/userdebug load切换AEE的mode (不仅仅是O,L/M/N的主要branch也都打上这个patch了)
须要设置property : ro.aee.enforcing = no
建议在vendor\mediatek\proprietary\external\aee\config_external\init.aee.customer.rc中添加
setprop ro.aee.enforcing no
(FAQ20159Android M/N user load,在打了aee security enhance patch 后,如何抓到普通aee db?)
5. aee 对三方app exception handle的过滤

    public void handle(String type, String info, String pid) {
        Log.w(TAG, "Exception Log handling...");
        if (type.startsWith("data_app") && !info.contains("com.android.development")
                && (SystemProperties.getInt("persist.mtk.aee.filter", 1) == 1)) {
            Log.w(TAG, "Skipped - do not care third party apk");
            return;
        }
aee 有对上层三方app 进行过滤, 如需抓三方app 的exception, 可以设置属性:setprop persist.mtk.aee.filter  0
二, 提交log需要注意的问题
Android O ,mtklog 和db 不在同一个目录,提交log 时需要同时导出来:
1, adb pull /sdcard/mtklog
2, adb pull /data/aee_exp
3, adb pull /data/vendor/mtklog/aee_exp