您的位置:首页 > 运维架构 > 网站架构

Android Vold架构(二)

2015-08-06 12:30 573 查看
1. 总体架构

2. 流程概览

2.1 开启Vold

2.2 引导Uevent

2.3 处理事件

static const char *stateToStr(int state) {

if (state == Volume::State_Init)

return "Initializing";

else if (state == Volume::State_NoMedia)

return "No-Media";

else if (state == Volume::State_Idle)

return "Idle-Unmounted";

else if (state == Volume::State_Pending)

return "Pending";

else if (state == Volume::State_Mounted)

return "Mounted";

else if (state == Volume::State_Unmounting)

return "Unmounting";

else if (state == Volume::State_Checking)

return "Checking";

else if (state == Volume::State_Formatting)

return "Formatting";

else if (state == Volume::State_Shared)

return "Shared-Unmounted";

else if (state == Volume::State_SharedMnt)

return "Shared-Mounted";

else

return "Unknown-Error";

}

TF 插入状态:

from 0 (No-Media) to 2 (Pending)

from 0 (No-Media) to 2 (Pending)

from 2 (Pending) to 1 (Idle-Unmounted)

from 1 (Idle-Unmounted) to 3 (Checking)

from 2 (Pending) to 1 (Idle-Unmounted)

from 1 (Idle-Unmounted) to 3 (Checking)

from 3 (Checking) to 4 (Mounted)

from 3 (Checking) to 4 (Mounted)

Vold - Volume Daemon存储类的守护进程,作为Android的一个本地服务,负责处理诸如SD、USB等存储类设备的插拔等事件。

1. 总体架构

Vold服务由volumeManager统一管控,它将具体任务分别分派给netlinkManager, commandListener, directVolume, Volume去完成。

Vold服务向下通过socket机制与底层驱动交互,向上通过JNI, intent, socket, doCommand等机制与Java Framework交互。



2 流程概览

2.1 开启服务

初始化Android系统时开启Vold本地服务,



Vold在/dev/block下创建vold文件夹,开启VolumeManager, NetlinkManager, CommandListener。

2.2 引导Uevent

NetlinkManager负责监听底层Linux上报的uevent事件。



系统的SocketListner统一管理所有socket事件。



NetlinkListner负责解析socket事件。



最后由onEvent()将vold事件交还给NetlinkManager处理。



2.3 处理Block和Switch事件

NetlinkManager调用VolumeManager中处理vold事件的类。

handleBlockEvent()完成SD的挂载和卸载,具体交由DirectVolume完成。

handleSwitchEvent()完成由USB实现的U盘的连接。

两者最后都是通过setBroadcast()将ResponsibleCode经过nativeDaemonConnector的socket监听机制,最终上传到MountService作统一规划。



MountService里的onEvent()得到解析后的事件,完成两大任务,

-> 发送命令doCommand()通过commandListener传递给volumeManager

-> 将事件信息广播给相关服务,供上层应用使用。

插入TF card log:

root@xxxdroid:/ # [ 2160.195060] [mmc]: mmc 0 detect change, present 1

[ 2160.700078] [mmc]: sdc0 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.711484] [mmc]: sdc0 power_supply is null

[ 2160.740049] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.772396] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 52, RTO !!

[ 2160.781740] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 52, RTO !!

[ 2160.790158] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.810274] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.827984] *******************Try sdio*******************

[ 2160.835223] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !!

[ 2160.844305] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !!

[ 2160.855896] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !!

[ 2160.865189] [mmc]: *** sunxi_mci_dump_errinfo(L826): smc 0 err, cmd 5, RTO !!

[ 2160.873522] *******************Try sd *******************

[ 2160.880366] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.892015] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2160.909979] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2161.061552] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 2161.073742] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B

[ 2161.090552] [mmc]: sdc0 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B

[ 2161.106316] [mmc]: sdc0 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B

[ 2161.118127] mmc0: new high speed SDHC card at address 1234

--------- beginning of /dev/log/[ 2161.128164] mmcblk0: mmc0:1234 SA04G 3.63 GiB

main

V/EventManager( 60): <line[0643] ueventLoop()> uevent_lo[ 2161.137952] mmcblk0: p1

op add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmc0:1234

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/[ 2161.161573] mmcblk mmc0:1234: Card claimed for testing.

mmc_host/mmc0/mmc0:1234

V/Event[ 2161.168581] mmc0:1234: SA04G 3.63 GiB

Manager( 60): <line[0598] chec[ 2161.177640] *******************sd init ok*******************

kTFCard()> tmp_end:c0:1234

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmc0:1234

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:c0:1234

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :179:0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:i/179:0

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :179:0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:i/179:0

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:mmcblk0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:mmcblk0

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[1]

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/Volume ( 57): ---createDeviceNode---path=/dev/block/vold/179:0

E/Volume ( 57): line=205,setState oldState=0,state=2

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/DirectVolume( 57): line=128,devtype=disk

D/DirectVolume( 57): line=179,handleDiskAdded mDiskNumParts=1

E/Volume ( 57): line=205,setState oldState=2,state=2

W/Volume ( 57): line=207,Duplicate state (2)

D/Volume ( 57): line=198,mState=2

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:74):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 0 (No-Media) to 2 (Pending)

V/StorageMonitor( 60): line=166, notify: mStatus = 2, mPath = /mnt/extsd

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[1]

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/Volume ( 57): ---createDeviceNode---path=/dev/block/vold/179:0

E/Volume ( 57): line=205,setState oldState=0,state=2

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/DirectVolume( 57): line=128,devtype=disk

D/DirectVolume( 57): line=179,handleDiskAdded mDiskNumParts=1

E/Volume ( 57): line=205,setState oldState=2,state=2

W/Volume ( 57): line=207,Duplicate state (2)

D/Volume ( 57): line=198,mState=2

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:74):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 0 (No-Media) to 2 (Pending)

V/StorageMonitor( 60): line=166, notify: mStatus = 2, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 2, mInserted = 1, mPath = /mnt/extsd.

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/Volume ( 57): ---createDeviceNode---path=/dev/block/vold/179:1

E/Volume ( 57): line=205,setState oldState=2,state=2

W/Volume ( 57): line=207,Duplicate state (2)

D/DirectVolume( 57): line=131,devtype=partition

D/DirectVolume( 57): handlePartitionAdded devpath=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1,mPartsEventCnt=0

D/DirectVolume( 57): handlePartitionAdded mDiskNumParts=1,mPartsEventCnt=1

D/Volume ( 57): line=198,mState=2

E/Volume ( 57): line=205,setState oldState=2,state=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/Volume ( 57): getShareFlags mShareFlags = 1

D/Volume ( 57): line=198,mState=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:80):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 2 (Pending) to 1 (Idle-Unmounted)

V/StorageMonitor( 60): line=166, notify: mStatus = 1, mPath = /mnt/extsd

D/StorageMonitor( 60): line=174,mShared=0, mSharing = 0, mFormated=0, mFormating = 0, mInserted = 1

D/StorageMonitor( 60): call mListener->notify, mStatus = 1, mInserted = 1, mPath = /mnt/extsd.

D/CommandListener( 57): CommandListener::VolumeCmd::runCommand

D/CommandListener( 57): argv[1]=mount

D/CommandListener( 57): 3333argv[1]=mount,argc=3

D/VolumeManager( 57): line=1116,mountVolume label=/mnt/extsd

D/Volume ( 57): line=198,mState=1

D/Volume ( 57): line=477,mountVol state : 1

D/Volume ( 57): line=198,mState=1

D/Volume ( 57): line=198,mState=1

D/DirectVolume( 57): getDeviceNodes mPartIdx=-1,mDiskNumParts=1

D/Volume ( 57): line=566,Volume::mountVol: mMountpoint /mnt/extsd

I/Volume ( 57): line=573,mountVol: n=1

I/Volume ( 57): line=581,/dev/block/vold/179:1 being considered for volume extsd

E/Volume ( 57): line=205,setState oldState=1,state=3

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:49):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=630 Volume extsd /mnt/extsd disk inserted (179:0)

W/StorageMonitor( 60): Error parsing status

V/StorageMonitor( 60): line=166, notify: mStatus = -1, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = -1, mInserted = 1, mPath = /mnt/extsd.

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:81):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 1 (Idle-Unmounted) to 3 (Checking)

V/StorageMonitor( 60): line=166, notify: mStatus = 3, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 3, mInserted = 1, mPath = /mnt/extsd.

D/StorageMonitor( 60): updateLoop finished

V/Menu.cpp( 60): <line[0079] MenuProc()> ******[debug_jaosn]:this message is STBM_MOUNT_TFCARD *******

V/Menu.cpp( 60): <line[0080] MenuProc()> ******[debug_jaosn]:this message is wParam :1*******

V/Menu.cpp( 60): <line[0084] MenuProc()> /mnt/extsd/full_img.fex not exist

V/Menu.cpp( 60): <line[0294] getMenuObj()> index is 0, current MenuObj is 0x0x40b4afc0

V/MenuSystem( 60): <line[0338] HandleSubMenuChange()> menuObj 1, set menuIndex false

V/ResourceManager.cpp( 60): <line[1787] setResBoolValue()> setResBoolValue: resID: 44, value: 0

I/ResourceManager.cpp( 60): <line[1845] setResBoolValue()> FIRMWARE: value is 0

V/Menu.cpp( 60): <line[0854] getFirstValueImages()> ************************MenuObj 1, getFirstValueImages menuIndex is 13

V/ResourceManager.cpp( 60): <line[1611] getResBmpSubMenuCheckbox()> 0:/full_img.fex not exist

V/MenuSystem( 60): <line[0376] HandleSubMenuChange()> xxxxxxxx

V/MenuSystem( 60): <line[0378] HandleSubMenuChange()> xxxxxxxx

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0p1

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:cblk0p1

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/Dialog.cpp( 60): <line[0081] ShowTipLabel()> <***ShowTipLabel ***>, labelIndex 14

V/Dialog.cpp( 60): <line[0064] getTipLabelData()> titleHeight is 40

V/Dialog.cpp( 60): <line[0141] ShowTipLabel()> ****************ptext:(null)

V/Dialog.cpp( 60): <line[0162] ShowTipLabel()> *****************text:妫€娴嬪埌SD鍗″凡鎻掑叆

V/TipLabel.cpp( 60): <line[0091] DialogProc()> set timeOut 3000 ms

I//system/bin/fsck_msdos( 57): ** /dev/block/vold/179:1

I//system/bin/fsck_msdos( 57): /dev/block/vold/179:1: FILESYSTEM CLEAN; SKIPPING CHECKS

D/Volume ( 57): line=619,FS checks /dev/block/vold/179:1

D/StorageMonitor( 60): call mListener->notify, mStatus = 2, mInserted = 1, mPath = /mnt/extsd.

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/Volume ( 57): ---createDeviceNode---path=/dev/block/vold/179:1

E/Volume ( 57): line=205,setState oldState=2,state=2

W/Volume ( 57): line=207,Duplicate state (2)

D/DirectVolume( 57): line=131,devtype=partition

D/DirectVolume( 57): handlePartitionAdded devpath=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1,mPartsEventCnt=0

D/DirectVolume( 57): handlePartitionAdded mDiskNumParts=1,mPartsEventCnt=1

D/Volume ( 57): line=198,mState=2

E/Volume ( 57): line=205,setState oldState=2,state=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/Volume ( 57): getShareFlags mShareFlags = 1

D/Volume ( 57): line=198,mState=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:80):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 2 (Pending) to 1 (Idle-Unmounted)

V/StorageMonitor( 60): line=166, notify: mStatus = 1, mPath = /mnt/extsd

D/StorageMonitor( 60): line=174,mShared=0, mSharing = 0, mFormated=0, mFormating = 0, mInserted = 1

D/StorageMonitor( 60): call mListener->notify, mStatus = 1, mInserted = 1, mPath = /mnt/extsd.

D/CommandListener( 57): CommandListener::VolumeCmd::runCommand

D/CommandListener( 57): argv[1]=mount

D/CommandListener( 57): 3333argv[1]=mount,argc=3

D/VolumeManager( 57): line=1116,mountVolume label=/mnt/extsd

D/Volume ( 57): line=198,mState=1

D/Volume ( 57): line=477,mountVol state : 1

D/Volume ( 57): line=198,mState=1

D/Volume ( 57): line=198,mState=1

D/DirectVolume( 57): getDeviceNodes mPartIdx=-1,mDiskNumParts=1

D/Volume ( 57): line=566,Volume::mountVol: mMountpoint /mnt/extsd

I/Volume ( 57): line=573,mountVol: n=1

I/Volume ( 57): line=581,/dev/block/vold/179:1 being considered for volume extsd

E/Volume ( 57): line=205,setState oldState=1,state=3

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:49):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=630 Volume extsd /mnt/extsd disk inserted (179:0)

W/StorageMonitor( 60): Error parsing status

V/StorageMonitor( 60): line=166, notify: mStatus = -1, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = -1, mInserted = 1, mPath = /mnt/extsd.

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:81):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 1 (Idle-Unmounted) to 3 (Checking)

V/StorageMonitor( 60): line=166, notify: mStatus = 3, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 3, mInserted = 1, mPath = /mnt/extsd.

D/StorageMonitor( 60): updateLoop finished

V/Menu.cpp( 60): <line[0079] MenuProc()> ******[debug_jaosn]:this message is STBM_MOUNT_TFCARD *******

V/Menu.cpp( 60): <line[0080] MenuProc()> ******[debug_jaosn]:this message is wParam :1*******

V/Menu.cpp( 60): <line[0084] MenuProc()> /mnt/extsd/full_img.fex not exist

V/Menu.cpp( 60): <line[0294] getMenuObj()> index is 0, current MenuObj is 0x0x40b4afc0

V/MenuSystem( 60): <line[0338] HandleSubMenuChange()> menuObj 1, set menuIndex false

V/ResourceManager.cpp( 60): <line[1787] setResBoolValue()> setResBoolValue: resID: 44, value: 0

I/ResourceManager.cpp( 60): <line[1845] setResBoolValue()> FIRMWARE: value is 0

V/Menu.cpp( 60): <line[0854] getFirstValueImages()> ************************MenuObj 1, getFirstValueImages menuIndex is 13

V/ResourceManager.cpp( 60): <line[1611] getResBmpSubMenuCheckbox()> 0:/full_img.fex not exist

V/MenuSystem( 60): <line[0376] HandleSubMenuChange()> xxxxxxxx

V/MenuSystem( 60): <line[0378] HandleSubMenuChange()> xxxxxxxx

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0p1

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:add@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:cblk0p1

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/Dialog.cpp( 60): <line[0081] ShowTipLabel()> <***ShowTipLabel ***>, labelIndex 14

V/Dialog.cpp( 60): <line[0064] getTipLabelData()> titleHeight is 40

V/Dialog.cpp( 60): <line[0141] ShowTipLabel()> ****************ptext:(null)

V/Dialog.cpp( 60): <line[0162] ShowTipLabel()> *****************text:妫€娴嬪埌SD鍗″凡鎻掑叆

V/TipLabel.cpp( 60): <line[0091] DialogProc()> set timeOut 3000 ms

I//system/bin/fsck_msdos( 57): ** /dev/block/vold/179:1

I//system/bin/fsck_msdos( 57): /dev/block/vold/179:1: FILESYSTEM CLEAN; SKIPPING CHECKS

D/Volume ( 57): line=619,FS checks /dev/block/vold/179:1

--------- beginning of /dev/log/system

I/Vold ( 57): Filesystem check completed OK

D/Vold ( 57): line=126,mount ret=0

E/Volume ( 57): line=642,Device /dev/block/vold/179:1, target /mnt/extsd mounted @ /mnt/secure/staging

E/Volume ( 57): line=205,setState oldState=3,state=4

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:74):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 3 (Checking) to 4 (Mounted)

V/StorageMonitor( 60): line=166, notify: mStatus = 4, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 4, mInserted = 1, mPath = /mnt/extsd.

V/StorageManager( 60): <line[0138] notify()> ~~mounted

D/StorageManager( 60): <line[0868] dbReset()> dbReset 868 0x40b5ef60

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[1]

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:33):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=200 11 volume operation succeeded

W/StorageMonitor( 60): Error parsing status

V/StorageMonitor( 60): line=166, notify: mStatus = -1, mPath = operation

D/StorageMonitor( 60): call mListener->notify, mStatus = -1, mInserted = 1, mPath = operation.

E/StorageManager( 60): <line[0846] getFiles()> /mnt/extsd/video/.thumb is not a regular file

E/StorageManager( 60): <line[0846] getFiles()> /mnt/extsd/photo/.thumb is not a regular file

D/StorageMonitor( 60): updateLoop finished

I/Vold ( 57): Filesystem check completed OK

D/Vold ( 57): line=126,mount ret=0

E/Volume ( 57): line=642,Device /dev/block/vold/179:1, target /mnt/extsd mounted @ /mnt/secure/staging

E/Volume ( 57): line=205,setState oldState=3,state=4

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x417c50b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:74):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 3 (Checking) to 4 (Mounted)

V/StorageMonitor( 60): line=166, notify: mStatus = 4, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 4, mInserted = 1, mPath = /mnt/extsd.

V/StorageManager( 60): <line[0138] notify()> ~~mounted

D/StorageManager( 60): <line[0868] dbReset()> dbReset 868 0x40b5ef60

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[1]

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:33):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=200 11 volume operation succeeded

W/StorageMonitor( 60): Error parsing status

V/StorageMonitor( 60): line=166, notify: mStatus = -1, mPath = operation

D/StorageMonitor( 60): call mListener->notify, mStatus = -1, mInserted = 1, mPath = operation.

E/StorageManager( 60): <line[0846] getFiles()> /mnt/extsd/video/.thumb is not a regular file

E/StorageManager( 60): <line[0846] getFiles()> /mnt/extsd/photo/.thumb is not a regular file

D/StorageMonitor( 60): updateLoop finished

log : 移除TF卡

root@camdroid:/ # [ 39.315047] [mmc]: mmc 0 detect change, present 0

[ 39.370116] mmc0: card 1234 removed

--------- beginning of /dev/log/main

[ 39.394177] [mmc]: sdc0 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B

[ 39.418076] [mmc]: sdc0 power_supply is null

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0p1

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:cblk0p1

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0/mmcblk0p1

D/DirectVolume( 57): Volume extsd /mnt/extsd partition 179:1 removed

D/Volume ( 57): line=198,mState=4

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop remove@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :179:0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:remove@/devices/virtual/bdi/179:0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:i/179:0

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmcblk0

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:mmcblk0

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[0]

V/RecordPreview( 60): <line[1427] stopRecord()> mCamExist recorder_idx :0

E/RecordPreview( 60): <line[1433] stopRecord()> !!!!!cam_type: 0, recording is stopped

V/RecordPreview( 60): <line[1485] stopRecord()> fail to stop recorder csi

V/RecordPreview( 60): <line[1427] stopRecord()> mCamExist recorder_idx :1

V/RecordPreview( 60): <line[1429] stopRecord()> mRecorder[1] is NULL

V/StorageManager( 60): <line[1575] startSyncThread()> !!mSST is not null

D/Volume ( 57): Volume::unmountVol

D/Volume ( 57): line=198,mState=4

E/Volume ( 57): line=205,setState oldState=4,state=5

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x41d130b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:76):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 4 (Mounted) to 5 (Unmounting)

V/StorageMonitor( 60): line=166, notify: mStatus = 5, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 5, mInserted = 1, mPath = /mnt/extsd.

V/StorageManager( 60): <line[0116] notify()> ~~unmounting

V/StorageManager( 60): <line[0170] isInsert()> ------------checkPath = /dev/block/mmcblk0p1

V/StorageManager( 60): <line[0172] isInsert()> isInsert fopen fail, checkPath = /dev/block/mmcblk0p1

D/CedarXRecorder( 58): (f:setSdcardState, l:676) mbSdCardState[0]

V/RecordPreview( 60): <line[1427] stopRecord()> mCamExist recorder_idx :0

E/RecordPreview( 60): <line[1433] stopRecord()> !!!!!cam_type: 0, recording is stopped

V/RecordPreview( 60): <line[1485] stopRecord()> fail to stop recorder csi

V/RecordPreview( 60): <line[1427] stopRecord()> mCamExist recorder_idx :1

V/RecordPreview( 60): <line[1429] stopRecord()> mRecorder[1] is NULL

V/StorageManager( 60): <line[1575] startSyncThread()> !!mSST is not null

V/MainWindow.cpp( 60): <line[1334] notify()> -----------umount, stopRecord and setSdcardState(false)

E/Volume ( 57): line=227,sendBroadcast end

D/StorageMonitor( 60): updateLoop finished

V/Menu.cpp( 60): <line[0079] MenuProc()> ******[debug_jaosn]:this message is STBM_MOUNT_TFCARD *******

V/Menu.cpp( 60): <line[0080] MenuProc()> ******[debug_jaosn]:this message is wParam :0*******

V/Menu.cpp( 60): <line[0084] MenuProc()> /mnt/extsd/full_img.fex not exist

V/Menu.cpp( 60): <line[0294] getMenuObj()> index is 0, current MenuObj is 0x0x4203d220

V/MenuSystem( 60): <line[0338] HandleSubMenuChange()> menuObj 1, set menuIndex false

V/ResourceManager.cpp( 60): <line[1787] setResBoolValue()> setResBoolValue: resID: 44, value: 0

I/ResourceManager.cpp( 60): <line[1845] setResBoolValue()> FIRMWARE: value is 0

V/Menu.cpp( 60): <line[0854] getFirstValueImages()> ************************MenuObj 1, getFirstValueImages menuIndex is 13

V/ResourceManager.cpp( 60): <line[1611] getResBmpSubMenuCheckbox()> 0:/full_img.fex not exist

V/MenuSystem( 60): <line[0376] HandleSubMenuChange()> xxxxxxxx

V/MenuSystem( 60): <line[0378] HandleSubMenuChange()> xxxxxxxx

V/EventManager( 60): <line[0643] ueventLoop()> uevent_loop remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234

V/EventManager( 60): <line[0367] isUVCStr()> isUVCstr :mmc0:1234

V/EventManager( 60): <line[0597] checkTFCard()> tmp_start:remove@/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234

V/EventManager( 60): <line[0598] checkTFCard()> tmp_end:c0:1234

V/EventManager( 60): <line[0693] ueventLoop()> The event is not handled

V/Dialog.cpp( 60): <line[0081] ShowTipLabel()> <***ShowTipLabel ***>, labelIndex 15

V/Dialog.cpp( 60): <line[0064] getTipLabelData()> titleHeight is 40

V/Dialog.cpp( 60): <line[0141] ShowTipLabel()> ****************ptext:(null)

V/Dialog.cpp( 60): <line[0162] ShowTipLabel()> *****************text:妫€娴嬪埌SD鍗″凡鎷斿嚭

V/TipLabel.cpp( 60): <line[0091] DialogProc()> set timeOut 3000 ms

D/Volume ( 57): mPartIdx = -1, mMountedPartNum = 1

D/Volume ( 57): Volume::unmountVol 3333333

D/Volume ( 57): Unmounting---------- {/mnt/extsd}, force = 1

D/Volume ( 57): Unmounting {/mnt/extsd}, force = 1

I/Volume ( 57): /mnt/extsd sucessfully unmounted

D/Volume ( 57): /mnt/extsd unmounted sucessfully

E/Volume ( 57): line=205,setState oldState=5,state=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x41d130b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

D/DirectVolume( 57): Crisis averted

D/VolumeManager( 57): VolumeManager----------------

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/DirectVolume( 57): line=94,dp=/devices/platform/sunxi-mmc.0/mmc_host/mmc0/mmc0:1234/block/mmcblk0

D/Volume ( 57): line=198,mState=1

D/Volume ( 57): line=198,mState=1

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x41d130b8 ++++++++++++

D/Volume ( 57): Volume::unmountVol

D/Volume ( 57): line=198,mState=1

E/Volume ( 57): Volume extsd unmount request when not mounted

E/Volume ( 57): line=205,setState oldState=1,state=0

E/VolumeManager( 57): +++++VolumeManager:: mBroadcaster=0x41d130b8 ++++++++++++

E/Volume ( 57): line=224,sendBroadcast start

E/Volume ( 57): line=227,sendBroadcast end

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:83):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 5 (Unmounting) to 1 (Idle-Unmounted)

V/StorageMonitor( 60): line=166, notify: mStatus = 1, mPath = /mnt/extsd

D/StorageMonitor( 60): line=174,mShared=0, mSharing = 0, mFormated=0, mFormating = 0, mInserted = 1

E/StorageMonitor( 60): line=205,Status=5

D/StorageMonitor( 60): call mListener->notify, mStatus = 1, mInserted = 1, mPath = /mnt/extsd.

D/CommandListener( 57): CommandListener::VolumeCmd::runCommand

D/CommandListener( 57): argv[1]=share

D/VolumeManager( 57): VolumeManager shareVolume label=/mnt/extsd

D/Volume ( 57): line=198,mState=0

E/VolumeManager( 57): VolumeManager shareVolume State_NoMedia444

E/CommandListener( 57): 22222VolumeCmd::runCommand volume operation failed

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:74):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=631 Volume extsd /mnt/extsd state changed from 1 (somestate) to 9 (Remove)

V/StorageMonitor( 60): line=166, notify: mStatus = 9, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 9, mInserted = 0, mPath = /mnt/extsd.

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:81):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=605 Volume extsd /mnt/extsd state changed from 1 (Idle-Unmounted) to 0 (No-Media)

V/StorageMonitor( 60): line=166, notify: mStatus = 0, mPath = /mnt/extsd

D/StorageMonitor( 60): call mListener->notify, mStatus = 0, mInserted = 0, mPath = /mnt/extsd.

V/StorageManager( 60): <line[0116] notify()> ~~unmounting

D/StorageMonitor( 60): updateLoop finished

V/StorageMonitor( 60): StorageMonitor::updateLoop read snd_buf(ret:47):

E/StorageMonitor( 60): 33333333aaaaaaaaaaaa src=401 13 volume operation failed (No such device)

W/StorageMonitor( 60): Error parsing status

V/StorageMonitor( 60): line=166, notify: mStatus = -1, mPath = operation

D/StorageMonitor( 60): call mListener->notify, mStatus = -1, mInserted = 0, mPath = operation.

D/StorageMonitor( 60): updateLoop finished

V/TipLabel.cpp( 60): <line[0049] timerCallback()> timerCallback

V/TipLabel.cpp( 60): <line[0056] timerCallback()> timeout timer timerCallback

I/TipLabel.cpp( 60): <line[0164] DialogProc()> MSG_CLOSE_LOWPOWER_DIALOG
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: