У меня есть сценарий bash, который я использую в Android для монтирования / размонтирования зашифрованных устройств, который можно вызвать в эмуляторе терминала с помощью
su -c "luks ..."
Скрипт работает нормально для первой части, за исключением времени монтирования, которое в скрипте я делаю с:
busybox mount /dev/mapper/${vol_arg} ${mount_path}
Несмотря на то, что я получаю код выхода 0 из этой команды, устройство не смонтировано. Командная строка
su -c "mount /dev/mapper/${vol_arg} ${mount_path}"
не работает ни в эмуляторе терминала, но не показывает ошибки (df не показывает устройство). Когда я пытаюсь выполнить его снова, я получаю сбой при монтировании: устройство или ресурс заняты. Если я тогда попробую
su -c "umount ${mount_path}"
Я также не могу размонтировать ...: устройство или ресурс занят. Что происходит?
Тем не менее, ДЕЙСТВИТЕЛЬНО странный момент здесь заключается в том, что, если я SSH к планшету как root с тем же эмулятором терминала, команда
mount /dev/mapper/${vol_arg} ${mount_path}
монтирует устройство нормально (??!!). Кроме того, если я выполню команду
'luks ...'
как SSHd root, он также отлично работает, даже монтируя устройство.
Почему монтирование работает, если он запускается как root SSH, а не через su -c?
Еще более странным является тот факт, что эта штука отлично работает в Samsung Android 4.1.2, но не в Cyanogenmod 11 (4.4.2)...
Может быть, люди из cyanogenmod представили какую-то ужасную ошибку?
Улики?
Спасибо!!
L.