У меня есть сценарий 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.

1 ответ1

0

Я обновил до CYM 11 M10, и теперь su работает нормально. Без сомнения, это была ошибка. Так что теперь я могу монтировать / размонтировать зашифрованные файлы, как я всегда мог это сделать.

Кажется, проблема решена в сборке M10.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .