MTK平台如何获取所有异常的AEE db文件

(1)需要开启的prop

默认情况下部分异常的db文件并不会产生,有如下Log显示:

01-10 11:57:31.292   384   384 D AEE_AED : $===AEE===AEE===AEE===$
01-10 11:57:31.293   384   384 D AEE_AED : p 2 poll events 1 revents 1
01-10 11:57:31.293   384   384 D AEE_AED : PPM cpu cores:4, online:4
01-10 11:57:31.294   384   384 D AEE_AED : aed_main_fork_worker: generator 0xb40000776622b3a0, worker 0x7fe03477f0, recv_fd 11
01-10 11:57:31.295  8597  8597 I AEE_AED : handle_request(11)
01-10 11:57:31.296  8597  8597 I AEE_AED : pid: 8455, tid: 8595, >>> /vendor/bin/hw/camerahalserver <<<
01-10 11:57:31.296  8597  8597 I AEE_AED : read_request: receive requirement from aee_core_forwar
01-10 11:57:31.296  8597  8597 D AEE_AED : u:r:mtk_hal_camera:s0
01-10 11:57:31.296  8597  8597 V AEE_AED : dashboard_record_update() : rec->module = /vendor/bin/hw/camerahalserver 
01-10 11:57:31.296  8597  8597 D AEE_AED : Last exception time: 1641787006 
01-10 11:57:31.296  8597  8597 D AEE_AED : cur time: 1641787051 
01-10 11:57:31.296  8597  8597 D AEE_AED : Skip for Exp level'0'
01-10 11:57:31.296  8597  8597 I AEE_AED : aed_ne_core_session: aed_report_filter asked to skip
01-10 11:57:31.296  8597  8597 E AEE_AED : handle_request: return status is fail
01-10 11:57:31.298   384   384 D AEE_AED : clear ppm settings
01-10 11:57:31.298  8596  8596 E libc    : Access denied finding property "persist.vendor.aee.log.status"
01-10 11:57:31.298  8596  8596 I aee_core_forwarder: process_coredump: skip process NE
01-10 11:57:31.298  8596  8596 E libc    : Access denied finding property "persist.vendor.aee.log.status"
01-10 11:57:31.299   384   384 D AEE_AED : $===AEE===AEE===AEE===$

可以参考Mtk官网的FAQ设置相关属性:

[FAQ20159] Android user/userdebug load,如何抓到所有异常的aee db?
[FAQ25047] Android Q/R user/userdebug版本如何开启aee dump机制
(A)需要设置如下属性

/vendor/mediatek/proprietary/external/aee/config_external/init.aee.customer.vendor.rc里添加

on init
setprop ro.vendor.aee.enforcing no(注意修改此属性后, 无法通过CTS 安全测试项, 在正式发布版本时, 需要恢复默认设置,把此行修改去掉)
setprop persist.vendor.aeev.core.dump enable      
setprop persist.vendor.aeev.core.direct enable
setprop persist.vendor.mtk.aee.mode 3
setprop persist.vendor.mtk.aeev.mode 3

(B)db文件产生在如下路径

/data/aee_exp
/data/vendor/aee_exp

(C)注意事项

(1)aee 有对上层三方app 进行过滤, 如需抓三方app 的exception, 可以设置属性:setprop persist.vendor.mtk.aee.filter 0
(2)user load :三方app 默认不做ANR dump, 如需抓三方app 的ANR exception, 可以设置属性:setprop persist.vendor.anr.dumpthr 1

(2)产生db文件时的Log

01-12 12:02:08.314467   430   430 D AEE_AED : $===AEE===AEE===AEE===$
01-12 12:02:08.314704   430   430 D AEE_AED : p 2 poll events 1 revents 1
01-12 12:02:08.315621   430   430 D AEE_AED : PPM cpu cores:8, online:8
01-12 12:02:08.316536   430   430 D AEE_AED : aed_main_fork_worker: generator 0xb4000078bf4309d0, worker 0x7fe843dbd0, recv_fd 11
01-12 12:02:08.318202  8912  8912 I AEE_AED : handle_request(11)
01-12 12:02:08.319391   846   923 D AAL     : 01-12 12:02:08.303 BL= 782,ESS= 256, 
01-12 12:02:08.319546  8912  8912 I AEE_AED : pid: 824, tid: 8909, >>> /vendor/bin/hw/camerahalserver <<<
01-12 12:02:08.319598  8912  8912 I AEE_AED : read_request: receive requirement from aee_core_forwar
01-12 12:02:08.319787  8912  8912 D AEE_AED : u:r:mtk_hal_camera:s0
01-12 12:02:08.319821  8912  8912 V AEE_AED : dashboard_record_update() : rec->module = /vendor/bin/hw/camerahalserver 
01-12 12:02:08.319851  8912  8912 V AEE_AED : Update record[0] 
01-12 12:02:08.319877  8912  8912 D AEE_AED :  i, Cls,     count,     last_time,     module  
01-12 12:02:08.319900  8912  8912 D AEE_AED : ==================================================================== 
01-12 12:02:08.319926  8912  8912 D AEE_AED :  0,  3,        1,     1641960128,     /vendor/bin/hw/camerahalserver 
01-12 12:02:08.319950  8912  8912 D AEE_AED :  1, -1,        0,     0,      
01-12 12:02:08.319974  8912  8912 D AEE_AED :  2, -1,        0,     0,      
01-12 12:02:08.319998  8912  8912 D AEE_AED :  3, -1,        0,     0,      
01-12 12:02:08.320022  8912  8912 D AEE_AED :  4, -1,        0,     0,      
01-12 12:02:08.320046  8912  8912 D AEE_AED :  5, -1,        0,     0,      
01-12 12:02:08.320070  8912  8912 D AEE_AED :  6, -1,        0,     0,      
01-12 12:02:08.320094  8912  8912 D AEE_AED :  7, -1,        0,     0,      
01-12 12:02:08.320144  8912  8912 W AEE_AED : DAL feature is off, just return
01-12 12:02:08.320187  8912  8912 I AEE_AED : Dumping EXP/Native (NE)
01-12 12:02:08.320256  8912  8912 I AEE_AED : db base:/data/aee_exp
01-12 12:02:08.321652  8552  8614 I DebugLoggerUI/FileMonitor: onEvent(). event = 1073742080, path = temp
01-12 12:02:08.321726  8912  8912 D AEE_AED : aed_report_dump_open: Using /data/aee_exp/temp/db.4jDnsl
01-12 12:02:08.321951  8912  8912 I AEE_AED : predump starts
01-12 12:02:08.322092  8912  8912 E AEE_AED : Fail to open process map: /proc/824/maps
01-12 12:02:08.322125  8912  8912 E AEE_AED : generate_pagemap_data: Copy from pid:824 failed(13), Permission denied
01-12 12:02:08.322225  8912  8912 E AEE_AED : Fail to open process map: /proc/824/maps
01-12 12:02:08.322255  8912  8912 E AEE_AED : generate_pagemap_data: Copy from pid:824 failed(13), Permission denied
01-12 12:02:08.322278  8912  8912 I AEE_AED : predump ends
db文件可使用Mtk提供的Gat工具来进行解析。

(3)关闭普通非FATAL exception db的dump信息

//vendor/mediatek/proprietary/external/aee/config_external/init.aee.customer.vendor.rc里添加

on init
setprop persist.vendor.aeev.core.dump disable //<== disable NE coredump
setprop persist.vendor.aeev.core.direct disable //<== disable NE direct coredump
setprop persist.vendor.mtk.aee.mode 4 //<== Dump FATAL exception db only
setprop persist.vendor.mtk.aeev.mode 4 //<== Dump FATAL exception db only
setprop persist.vendor.mtk.aee.filter 1  //<== Disable 3rd apk exception db
setprop persist.vendor.anr.dumpthr 0 //<== Disable 3rd apk ANR db
setprop persist.vendor.dbg.anrflow 2 //<== Disable all apk (including system apk) ANR db
setprop persist.vendor.anr.enhancement 1 //<== Use MTK ANR Flow

注意:
打开MTK debuglogger之后persist.vendor.mtk.aee.mode和persist.vendor.mtk.aeev.mode会默认修改为3,会开启抓取普通JE db。
建议可以在脚本文件里面直接设置,在打开MTK debuglogger之后,再设置这两个属性值为4,这样就可以关闭普通JE db dump。

(4)简单操作和验证如下

Q及以上修改vendor/mediatek/proprietary/external/aee/config_external/init.aee.customer.vendor.rc,init.aee.customer.system.rc也可一起修改。

setprop ro.vendor.aee.enforcing no
setprop persist.vendor.aeev.core.dump enable
setprop persist.vendor.aeev.core.direct enable
setprop persist.vendor.mtk.aee.mode 3
setprop persist.vendor.mtk.aeev.mode 3
setprop persist.vendor.mtk.aee.filter 0
setprop persist.vendor.anr.dumpthr 1
setprop persist.mtk.aee.mode 3

修改后cat out/target/product/kxxxx/vendor/etc/init/hw/init.aee.rc,确认修改在out下生成文件生效
手机上查看上文设定的属性值,确保每一个都生效
用*#*#33284打开mtklog,通过adb shell ps | grep system_server查询SystemServer进程,后通过adb shell kill -11 xxx来杀死进程触发NE,后通过pull aee_exp文件夹下文件使用MediatekDBViewer进行解析
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/dongxianfei/article/details/122452351

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值