Ubuntu: How can I make `adb shell` have the correct terminal size?



Question:

So adb shell has an annoying bug where it doesn't realize that your graphical terminal app is larger than 80x24, so when you try to run any kind of full-screen console apps like vi or emacs (or any ncurses app), it does not take up the full screen, only a small portion of it. Is there a way to fix this easily?


Solution:1

UPDATE (Feb. 2015): By now, you can just use "phablet-shell". No need to fiddle around with self built scripts any more. That said, if you want to, they should still work.


What I usually do is to use ssh instead of adb. That one configures the terminal properly (besides setting many other things up better than adb does).

Put this into your ~/.bash_aliases (on the host computer, not the device)

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'  

and close/reopen the terminal window.

Now you can just do a "sd" (short for ssh device) and you'll be logged in as user phablet on the phone, with a properly configured terminal and a properly set up user environment.


Solution:2

It's not a bug in the terminal - the default setup of the shell on android is just not configured to handle changing window sizes.

After you resize the actual terminal window, use the resize command - then use your fullscreen program.


Solution:3

Building off of mzanetti's answer above, I've expanded it to have a couple advantages that I'm now using regularly:

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  }  
  • It remembers your credentials so you don't have to type your password every time

  • It copies your bash config from the host to the device so you can use all your favorite aliases (and custom prompt config!)


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »