andriod watchdog 需要各个应用自身去注册监听
adb shell dumpsys activity services > a-s.txt 或者 adb shell service list
framework即时编译部署
perl update-jar-dex.pl -r “D:\Workspace\android-framework\bin” -c class_list.txt -j framework -o framework.jar
定制符合项目需求的安全策略
http://blog.csdn.net/modianwutong/article/details/43114883
SELinux的安全检查覆盖了所有重要的系统资源,每次MAC访问失败都会记录在内核中,如下:
<6>[82.950769] type=1400 audit(1882976.149:5): avc: denied { write } for pid=3194 comm="BluetoothAdapte" name="aplog" dev="mmcblk0p22" ino=88 scontext=u:r:bluetooth:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir |
上面的log记录了一条违反安全策略的访问信息,即BluetoothAdapte进程试图在data分区写目录失败。
scontext表示进程的SContext,u:r:bluetooth:s0,属于bluetooth域;
tcontext表示目标的SContext,u:r:system_data_file:s0,属于system_data_file类型;
tclass表示进程要操作的ObjectClass,dir表示目录;
mmcblk0p22是userdata分区,write表示写操作。
连起来就是bluetooth域的进程(BluetoothAdapte),对system_data_file类型的dir执行write操作失败。明确了失败原因,我们就可以在安全策略配置文件中定制我们自己的策略了:
[external/sepolicy/bluetooth.te] allow bluetooth system_data_file:dir w_dir_perms; |
w_dir_perms是一个宏,其定义在global_macros中,包含了write相关操作:
[external/sepolicy/global_macros] define(`w_dir_perms', `{ open search write add_name remove_name }') |
adb shell reboot -p
MTK-FTRACE
当您拿到ftrace_all_in_one_latest.zip之后,请在user mode下按照如下步骤进行:
一般情况下只需要0xE即可
需要使用如下命令:
adb shell setprop debug.atrace.tags.enableflags 0xE
adb shell "setprop debug.egl.traceGpuCompletion 1"
adb shell stop
adb shell start
2 .双击打开ftrace_all_in_one里面的01-catch.bat,按照提示按任意键开始,然后开始模拟你认为卡顿的操作,但卡顿发生之后,按照提示按任意键结束,待01-catch.bat运行完后自动会退出。
3.双击打开02-parse.bat,结束后会自动生成trace.html
4.上传trace.html 给我们分析(请告诉我们卡顿发生几秒后停止录Ftrace的,便于我们找到相关时间点)
2 点击bat,到output里面去看输出结果。
高通平台如何抓取Ftrace?方案在此
(1)修改init.rc增加如下(相关于执行ulimit -c unlimited)
setrlimit 4 -1 -1
write /proc/sys/kernel/core_pattern "/local/log/core-%e-%p-%t"
(2)也需要增加如下脚本:
echo "1" > /proc/sys/kernel/core_uses_pid //允许文件名后加pid
echo "/local/log/core-%e-%p" > /proc/sys/kernel/core_pattern
echo 1 > /proc/sys/fs/suid_dumpable