Таким образом, adb shell
имеет досадную ошибку, из-за которой не осознается, что ваше графическое терминальное приложение имеет размер более 80x24, поэтому при попытке запустить любой вид полноэкранных консольных приложений, таких как vi или emacs (или любое приложение ncurses) ), он не занимает весь экран, только небольшую его часть. Есть ли способ это легко исправить?
ОБНОВЛЕНИЕ (февраль 2015 г.): теперь вы можете просто использовать «Фаблет-оболочку». Больше не нужно возиться с самодельными скриптами. Тем не менее, если вы хотите, они все равно должны работать.
Я обычно использую ssh вместо adb. Он правильно настраивает терминал (помимо настройки многих других вещей лучше, чем adb).
Поместите это в ~ / .bash_aliases (на главном компьютере, а не на устройстве)
alias sd='adb shell start ssh; \
adb forward tcp:2222 tcp:22; \
ssh-keygen -f ~/.ssh/known_hosts -R [localhost]:2222; \
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
phablet@localhost -p 2222'
и закройте / снова откройте окно терминала.
Теперь вы можете просто выполнить «sd» (сокращение от ssh device) и войти в систему как пользователь phablet на телефоне, с правильно настроенным терминалом и правильно настроенной пользовательской средой.
Это не ошибка в терминале - настройка оболочки по умолчанию на Android просто не настроена для обработки изменения размеров окна.
После изменения размера фактического окна терминала, используйте команду resize
- затем используйте полноэкранную программу.
Опираясь на ответ Мзанетти, приведенный выше, я расширил его, чтобы иметь пару преимуществ, которыми я сейчас регулярно пользуюсь:
function adbshell {
adb shell start ssh
adb forward tcp:2222 tcp:22
ssh-keygen -f ~/.ssh/known_hosts -R [localhost]:2222
ssh-copy-id -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
phablet@localhost -p 2222 2>/dev/null
scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
-q -P 2222 -r ~/.bash* ~/.profile* phablet@localhost:/home/phablet
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
phablet@localhost -p 2222
}
Он запоминает ваши учетные данные, поэтому вы не можете вам не нужно каждый раз вводить пароль
Он копирует вашу конфигурацию bash с хоста на устройство, чтобы вы могли использовать все ваши любимые псевдонимы (и конфигурацию пользовательских подсказок!)
Когда я планирую находиться в {adb shell} какое-то время, я обычно начинаю с
stty columns 132
Я регулярно использую его как на корневых, так и на нерутированные устройства.
Учитывая, что это ручная команда каждый раз, когда вы запускаете оболочку (а не автоматическая, как решение mzanetti/robru), это просто и не требует изменения использования SSH.