加密失败时,若在main_log中查询到是因为data unmount失败导致,要如何定位问题
时间:10-02
整理:3721RD
点击:
加密失败时,若在main_log中查询到是因为data unmount失败导致,要如何定位问题How to locate the issue when encryption is failed due to data unmount?
[DESCRIPTION]
加密失败有很多原因,最常见的一种就是/data unmount失败。
那遇到/data unmount失败的问题时,要如何定位具体原因呢?
[SOLUTION]
1 加密失败发生时,请抓取到复现问题的GAT log。
抓取log的具体方式请参考相关文章
2 抓取到gat log后,第一步要分析的是main_log。
请在main_log里搜索Cryptfs关键字得到加密过程的信息
(如果搜索不到Cryptfs,就是log没抓取到,请依FAQ08774抓取正确的log)
如果log里有下边的信息,则说明是unmount /data失败了
Cryptfs : unmounting /data failed
Cryptfs : try to kill related process
Cryptfs : Failed to unmount /data (Device or resource busy, retries 2,
action 1)
Cryptfs : Failed to unmount /data (Device or resource busy, retries 1,
action 2)
Cryptfs : force to umount via superumount: /system/bin/superumount /data
D : Failed to unmount /data (, retries 3, action 0)
D : mediatek/external/superumount/superumount.c 758 doUnmount
D : Failed to unmount /data (, retries 0, action 0)
D : mediatek/external/superumount/superumount.c 764 doUnmount
D : Giving up on unmount /data
Cryptfs : Failed to unmount /data (Device or resource busy, retries 0,
action 0)
Cryptfs : Giving up on unmount /data (No such file or directory)
Cryptfs : Error enabling encryption after php?mod=tag&id=6090" target="_blank" class="relatedlink">Framework is shutdown, no data
changed, restarting system
3 unmount /data的原因是因为当前/data目录里的文件被某个process咬住了。
1)User space有三方apk咬住/data目录文件没有释放或者工程原有代码咬住/data目录没有释
放
处理方法:main log里会打印出哪个process咬住/data
使用没有安装任何三方apk的driver only版本进行测试。
2)Kernel space有process咬住/data 目录文件没有释放(也有三方apk会在kernel space
咬住/data文件)
处理方法:修改下边的代码后再抓取log,主要看kernel log.
namespace.c (kernel\fs\namespace.c)
#define UMOUNT_LOG //enable kernel layer unmount log
#define UMOUNT_Partition "/emmc@usrdata"
抓取到对应的GAT LOG后请提交eservice且附上抓取的log。
请注意:
目前遇到goodix的auto_update中咬住/data,造成加密失败的问题较多。
所以在怀疑kernel space咬住/data后,贵司可以先设置tpd_custom_gt9xx.h中的tp升级宏开
关GTP_AUTO_UPDATE置为0,然后再进行测试。
如果关闭GTP_AUTO_UPDATE后加密可以成功,请在提交eservice时加note进行说明。(且请联
系goodix原厂进行检查,看是否有打开file后没有close)
如果关闭GTP_AUTO_UPDATE后加密依然失败,也请在提交eservice时加note进行说明。
[DESCRIPTION]
加密失败有很多原因,最常见的一种就是/data unmount失败。
那遇到/data unmount失败的问题时,要如何定位具体原因呢?
[SOLUTION]
1 加密失败发生时,请抓取到复现问题的GAT log。
抓取log的具体方式请参考相关文章
2 抓取到gat log后,第一步要分析的是main_log。
请在main_log里搜索Cryptfs关键字得到加密过程的信息
(如果搜索不到Cryptfs,就是log没抓取到,请依FAQ08774抓取正确的log)
如果log里有下边的信息,则说明是unmount /data失败了
Cryptfs : unmounting /data failed
Cryptfs : try to kill related process
Cryptfs : Failed to unmount /data (Device or resource busy, retries 2,
action 1)
Cryptfs : Failed to unmount /data (Device or resource busy, retries 1,
action 2)
Cryptfs : force to umount via superumount: /system/bin/superumount /data
D : Failed to unmount /data (, retries 3, action 0)
D : mediatek/external/superumount/superumount.c 758 doUnmount
D : Failed to unmount /data (, retries 0, action 0)
D : mediatek/external/superumount/superumount.c 764 doUnmount
D : Giving up on unmount /data
Cryptfs : Failed to unmount /data (Device or resource busy, retries 0,
action 0)
Cryptfs : Giving up on unmount /data (No such file or directory)
Cryptfs : Error enabling encryption after php?mod=tag&id=6090" target="_blank" class="relatedlink">Framework is shutdown, no data
changed, restarting system
3 unmount /data的原因是因为当前/data目录里的文件被某个process咬住了。
1)User space有三方apk咬住/data目录文件没有释放或者工程原有代码咬住/data目录没有释
放
处理方法:main log里会打印出哪个process咬住/data
使用没有安装任何三方apk的driver only版本进行测试。
2)Kernel space有process咬住/data 目录文件没有释放(也有三方apk会在kernel space
咬住/data文件)
处理方法:修改下边的代码后再抓取log,主要看kernel log.
namespace.c (kernel\fs\namespace.c)
#define UMOUNT_LOG //enable kernel layer unmount log
#define UMOUNT_Partition "/emmc@usrdata"
抓取到对应的GAT LOG后请提交eservice且附上抓取的log。
请注意:
目前遇到goodix的auto_update中咬住/data,造成加密失败的问题较多。
所以在怀疑kernel space咬住/data后,贵司可以先设置tpd_custom_gt9xx.h中的tp升级宏开
关GTP_AUTO_UPDATE置为0,然后再进行测试。
如果关闭GTP_AUTO_UPDATE后加密可以成功,请在提交eservice时加note进行说明。(且请联
系goodix原厂进行检查,看是否有打开file后没有close)
如果关闭GTP_AUTO_UPDATE后加密依然失败,也请在提交eservice时加note进行说明。
学习了~~~~~
一开机就提示的吗
签到