LoginSignup
2
0

TermuxのProotから脱獄する

Last updated at Posted at 2023-07-11

なんでそんなことを?

prootにはどうしてもオーバーヘッドがあるし、prootのデスクトップの中でTermux本体のシェルにアクセスしたいときがあるからです。
え?みんなそういうことしない?

やり方

まずはTermuxにproot仮想環境を作っておいてください。
それと、tmuxかscreenをインストールして、仮想ターミナルを起動しておいてください。

Step 0

proot-distroを使ってる場合は飛ばして構いません。
もし、AndronixやAnLinuxを使っている場合は、以下のディレクトリ・ファイルをバインドするようにしてください。

/data
/system
/apex
/linkerconfig/ld.config.txt

これで、prootの中からでもTermuxのコマンドを実行できます。

Step 1

proot内で新しいユーザーを作ります。

proot
adduser temrux

ユーザー名は適当にtermuxとしていますが、別になんでもいいです。
だたし、すでに一般ユーザーを使用している場合でも新しいユーザーを作ってください。
このあとこのアカウントは半分ぶっ壊れます。(一敗)
次に、Termux本体のシェルを開いて、TermuxのユーザーIDを調べます

termux
echo $UID

またprootにもどって、さっき作ったユーザーのIDを書き換えます。
ユーザーがtermuxで、IDが10318の場合はこのようなコマンドになります。

proot
usermod -o -u 10318 termux

Step 2

screenを使っている場合、新しく作ったユーザーのホームディレクトリに/data/data/com.termux/files/home/.screenのリンクを作っておいてください。

tmuxの場合は、このコマンドを実行してみてください。

proot
sudo -u [先程のユーザー] /data/data/com.termux/files/usr/bin/tmux ls

screenの場合は、このコマンドを実行してみてください。

proot
sudo -u [先程のユーザー] /data/data/com.termux/files/usr/bin/screen -ls

うまく行っていれば、最初に作ったセッションが出てくるはずです。
そのセッションにアタッチすれば、脱獄完了です。

proot
sudo -u [先程のユーザー] /data/data/com.termux/files/usr/bin/tmux a
proot
sudo -u [先程のユーザー] /data/data/com.termux/files/usr/bin/screen -a

Step 3

別にこれはやらなくてもいいですが、そこそこ長いコマンドなのでエイリアスとかシェル関数とか作っておくと便利です。

さいごに

初めての記事なので、気になるところがあったらどんどん言ってください。

さっきやってわかったこと

この方法でTermuxのtmuxを起動すればprootの中で作ったtmuxセッションを開くことができた
screenはうまくいかなかったけど

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0