Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

vold
Volume Daemon - служба внешнего хранилища

Тип файла: служба

   

Комментарии
Когда мы вставляем SD-карту или USB-накопитель в устройство Android, система автоматически монтирует их для использования.

vold (Volume Daemon) — это служба, отвечающая за обнаружение и монтирование/отключение всех внешних или расширенных носителей в Android, таких как usb, sdcard, cdrom (SSD ?)

Основная функция службы заключается в том, чтобы помочь Android поддерживать устройства хранения данных с возможностью горячей замены.

Процесс vold получает от ядра сообщения о подключении или отключении внешнего устройства хранения для управления и контроля внешних устройств хранения на платформе Android.
Они включают в себя подключение SD-карты, монтирование, удаление и форматирование.

При изменении внешнего устройства ядро отправляет сообщения в формате uEvent через Netlink.
Для программ пользовательского пространства Netlink — это специальный механизм связи на основе сокетов, который является асинхронным и используется для двунаправленной передачи данных между ядром и пользовательским приложением.

Приложение пользовательского сокета может использовать стандартный API сокета для использования мощных функций, предоставляемых Netlink

vold — нативная программа для управления внешним запоминающим устройством на платформе Android.
Это фоновый процесс. Он взаимодействует со слоем Java MountService.

vold получает сообщения uevent от ядра и пересылает их на верхний уровень.
MountService получает сообщения от vold, а также может отправлять команды управления vold.
vold включает три модуля: NetlinkManager, VolumeManager и CommandListener.

Модуль NetlinkManager специально получает сообщение uevent от ядра Linux и пересылает его в VolumeManager.
Затем модуль VolumeManager отправляет соответствующую информацию в MountService через CommandListener.
MountService отправляет соответствующую команду обработки в VolumeManager в соответствии с полученным сообщением, и VolumeManager получает команду. Затем непосредственно управляйте внешним запоминающим устройством.
Модуль CommandListener внутренне инкапсулирует Socket для межпроцессного взаимодействия.
Служба MountService уровня Java на стороне клиента взаимодействует с vold на стороне сервера через Socket.