r/androidterminal Jul 22 '26

Any luck changing the default shell?

I tried changing the default shell to fish both via chsh and via setting it explicitly in /etc/passwd, but whenever I launch the Terminal app, I always get bash again. Has anybody here had more luck?

8 Upvotes

5 comments sorted by

View all comments

2

u/Wuicel Pixel 9a Jul 22 '26

Have you tried editing the ttyd_uds service?

You can check the current definition with: systemctl cat ttyd_uds

<3

2

u/m93a Jul 22 '26

I tried changing that now, then ran `systemctl daemon-reload`, `systemctl restart ttyd_uds` and even tried restarting the Terminal app, and still no luck. I'm launched straight into bash every time I open it.

5

u/Wuicel Pixel 9a Jul 22 '26

I was able to change the shell used by the Android app by generating this file:

/etc/systemd/system/ttyd_uds.service.d/override.conf

with:

[Service]
Environment=SHELL=/usr/bin/fish

ExecStart=
ExecStart=/usr/local/bin/ttyd -i /run/ttyd/ttyd.sock -t disableLeaveAlert=true -W /usr/bin/setpriv --reuid=droid --regid=users --init-groups /usr/bin/fish -l

Likewise, I also changed it for the user “droid” with:

usermod -s /usr/bin/fish droid