system_server重启导致sdcardfs挂载失败分析
system server重启导致vold重启,vold挂载sdcardfs失败,导致app无法访问内置存储。
原因是selinux权限问题:type=1400 audit(0.0:130): avc: denied { mounton } for path="/mnt/runtime/default/emulated" dev="sdcardfs" ino=99 scontext=u:r:sdcardd:s0 tcontext=u:object_r:sdcardfs:s0 tclass=d
解决方案:在sdcardd.te文件添加 allow sdcardd sdcardfs:dir mounton
05-24 03:13:02.865 3789 3789 W sdcard : Device explicitly enabled sdcardfs
05-24 03:13:02.865 3789 3789 W sdcard : Failed to mount sdcardfs with options fsuid=1023,fsgid=1023,multiuser,derive_gid,default_normal,mask=6,userid=0,gid=1015: Permission denied
05-24 03:13:02.866 3789 3789 W sdcard : Failed to mount sdcardfs with options fsuid=1023,fsgid=1023,multiuser,derive_gid,mask=6,userid=0,gid=1015: Permission denied
05-24 03:13:02.866 3789 3789 W sdcard : Failed to mount sdcardfs with options fsuid=1023,fsgid=1023,multiuser,mask=6,userid=0,gid=1015: Permission denied
05-24 03:13:02.866 3789 3789 W sdcard : Failed to mount sdcardfs with options fsuid=1023,fsgid=1023,mask=6,userid=0,gid=1015: Permission denied
05-24 03:13:02.866 3789 3789 F sdcard : sdcard.cpp:176] failed to sdcardfs_setup
05-24 03:13:02.867 3789 3789 F libc : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 3789 (sdcard), pid 3789 (sdcard)
05-24 03:13:02.859 3789 3789 W sdcard : type=1400 audit(0.0:130): avc: denied { mounton } for path="/mnt/runtime/default/emulated" dev="sdcardfs" ino=99 scontext=u:r:sdcardd:s0 tcontext=u:object_r:sdcardfs:s0 tclass=dir permissive=0
05-24 03:13:03.096 3799 3799 F DEBUG : pid: 3789, tid: 3789, name: sdcard >>> /system/bin/sdcard <<<
05-24 03:13:03.096 3799 3799 F DEBUG : Abort message: 'sdcard.cpp:176] failed to sdcardfs_setup'