在 Android 手机上 chroot Linux
因为没有电脑,免费的 VPS 连接太慢操作不方便,就想搞个 Linux 在手机上面。
准备
先下载 arm 版:https://archlinuxarm.org/about/downloads
然后手机里面还要有 busybox
开始
创建文件夹并解压
因为 sdcard 没有办法更改权限所以放到 /data 里面。
su |
chroot 进去
unset LD_PRELOAD TMPDIR |
如果手机里面配置了c4droid的gcc环境变量的的话也要先unset,不然make会一直提示segmentation fault(这个可把我坑惨了)。
设置
配置 DNS
rm /etc/resolv.conf |
换源
echo 'Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo' > /etc/pacman.d/mirrorlist
设置主机名
echo miuna > /etc/hostname |
source profile
source /etc/profile
更新系统
pacman -Syu base-devel
添加普通用户
userdel alarm #删除自带的 |
修改 sudoers 文件
nano -w /etc/sudoers
添加riko ALL=(ALL) ALL
安装 yaourt
package-query
git clone https://aur.archlinux.org/package-query.git |
yaourt
git clone https://aur.archlinux.org/yaourt.git |
如果这段 fakeroot 出错了,有可能是手机内核的问题。可以照 Knifefire 说的换用fakeroot-tcp
。
一些问题
data 分区权限
如果 sudo 提示 sudo: effective uid is not 0, is /sbin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
的话可以重挂载/data。
先退出chroot,然后执行mount -o,remount,suid /data
/dev/fd/62: No such file or directory
chroot下执行 ln -s /proc/self/fd /dev/fd
网络权限
groupadd -g 3001 net_bt_admin |
内置储存权限
如果把内置储存挂到这里并且用普通用户的话需要配置下。
groupadd -g 1015 sdcard_rw |
剩下还有一大堆权限,什么录音的啊,相机的啊,GPS…一大堆。不过好像都用不到。
完
如果手机重启后想再次进入只需要重新执行下面的命令就好啦。
busybox mount -o,remount,suid /data |