精华内容
下载资源
问答
  • Androidchroot 一个 ArchLinux

    千次阅读 2019-01-01 18:05:59
      2017-05-02 AndroidLinux ...翻知乎看到初春静流的 这条回答 ,刚好手边有闲置的 Android 机,不妨来试试 chroot 。 创建 root 目录 首先手机必须破解了 root 权限,然后到 /data 下面建一个用作 rootf...

    https://haruue.moe/blog/2017/05/02/android-chroot-archlinux/

     

    2017-05-02 AndroidLinux

     

    翻知乎看到初春静流的 这条回答 ,刚好手边有闲置的 Android 机,不妨来试试 chroot 。

    创建 root 目录

    首先手机必须破解了 root 权限,然后到 /data 下面建一个用作 rootfs 的目录,比如我用的是 /data/local/archlinux

    获取合适的 ArchLinuxARM 镜像

    虽然现在 ArchLinux 只对 x86_64 架构提供支持,但是有 ArchLinuxARM 项目对 arm 平台也提供了完善的支持,去源里找一个支持你手机平台的镜像,比如我用的是 ArchLinuxARM-odroid

    把镜像安装到手机

    把镜像下载下来,解压到 /data/local/archlinux ,先别急着 chroot ,把必要的目录 rbind 过去

    busybox mount --rbind /dev /data/local/archlinux/dev
    busybox mount --rbind /sys /data/local/archlinux/sys
    busybox mount --rbind /proc /data/local/archlinux/proc
    busybox mount -t tmpfs tmpfs /data/local/archlinux/tmp
    

    切换到 chroot 环境

    现在就是切换到 chroot 环境的时候了,使用这条命令就好

    chroot /data/local/archlinux bash
    

    不出所料的话, bash 会出现在你的眼前。

    联网

    讲道理网络本来应该是配好的,不过 Android 内核有个蛋疼的网络权限机制,所以还需要做一些魔改

    groupadd -g 3001 aid_bt
    groupadd -g 3002 aid_bt_net
    groupadd -g 3003 aid_inet
    groupadd -g 3004 aid_net_raw
    groupadd -g 3005 aid_admin
    
    usermod -a -G aid_bt,aid_bt_net,aid_inet,aid_net_raw,aid_admin root
    
    newgrp aid_inet    # 切换到 aid_inet 组,获取联网权限
    

    然后是解析,Arch Linux 的网络和解析默认都是由 systemd 管着的,然而在 chroot 环境下,systemd 不能正常工作,所以手动设置一下吧。

    rm /etc/resolv.conf    # 先删掉之前的符号链接
    echo 'nameserver ip.of.name.server' > /etc/resolv.conf
    

    pacman

    清华和科大都提供了 ArchLinuxARM 的开源镜像,把这两行放到 /etc/pacman.d/mirrorlist 顶上

    Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
    Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/$arch/$repo
    

    然后配置 pacman 使用 curl 进行下载,在 /etc/pacman.conf 中取消注释下面一行

    XferCommand = /usr/bin/curl -C - -f %u > %o
    

    完成之后 pacman 应该就能正常工作了。

    服务

    由于 systemd 在 chroot 环境下不能工作,所以需要使用 nohup 启动服务。

    例如启动 sshd 服务使用

    nohup /bin/sshd -D > sshd.log &
    

    要提示没有 host key 就 gen 一个

    ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
    

    用户与权限

    大部分手机在挂载 /data 时使用了 nosuid ,比如我这部手机的

    /dev/block/mmcblk0p21 /data ext4 rw,seclabel,nosuid,nodev,noatime,journal_checksum,journal_async_commit,noauto_da_alloc,data=ordered 0 0
    

    这使得需要 suid 的东西都无法工作,比如 sudo ,要解决这个问题,有三种方案:

    • 直接使用 root 用户,有需要时使用 sudo 降低权限(可能不安全)
    • 把整个 rootfs 放到一个 img 文件里,然后挂载
    • 在手机上使用 suid 选项重新挂载 /data

       busybox mount -o remount,suid /data
      
    展开全文
  • Androidchroot的Linux系统中使用sudo提示如下: sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位 解决方法: 1、使用 suid 选项重新挂载 /data busybox mount -o remount,suid /data 2、把整个 rootfs 放...

    在Android里chroot的Linux系统中使用sudo提示如下:

     sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
    

    解决方法:
    1、使用 suid 选项重新挂载 /data

    busybox mount -o remount,suid /data
    

    2、把整个 rootfs 放到一个 img 文件里,然后挂载
    3、直接使用 root 用户,有需要时使用 sudo 降低权限

    问题原由

    昨天通过Linux deploy软件在/data/debian路径下安装了个Debian,然后我是直接通过终端模拟器以root身份chroot使用这个Linux,但在远程连接的时候发现连接root用户一直提示我密码错误,可我实际上已经在root权限下设置了passwd,随后我adduser加入了一个新用户来提供远程,当我再次远程连接的时候,发现可以登录并使用这个用户,但随后问题来了,我需要提权来安装某个依赖,但输入sudo告诉我 sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位,在网上搜索到的内容均是重新以root身份赋予sudo 4755、u+s、root组这种千篇一律的低质量文章,后来换了关键词(chroot linux sudo )才得到 解决方案

    stackoverflow论坛原文回答

    展开全文
  • 这几天心血来潮去玩termux,结果最难受的是突然发现termux-chroot命令无法使用,经过在茫茫网络中的搜索,终于在GitHub上找到了解决方案。 参考这个问题,大佬们的答案 ...# Android 10 needs /apex for /system/bi
  • Android通过chroot使用Linux运行mariadb无法启动,提示如下报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 解决方案: 需要加入 aid_inet 组 ...

    Android通过chroot使用Linux运行mariadb无法启动,提示如下报错:

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    

    解决方案:

    需要加入 aid_inet 组

    usermod -a -G aid_net_raw mysql
    

    问题原由:

    还是同一天,我在解决完sudo问题后,接着就遇到了这个mariadb的问题,在我安装完成之后,它一直提示我 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 而网上的结果也大都是低质量复制黏贴的文章,后来也是换了许多关键词(arm chroot mariadb)才找到这个理想 解决方案

    展开全文
  • chroot ubuntu 16.04 on android

    千次阅读 2017-10-03 17:26:04
    Chroot ubuntu 16.04 on android 基于「Android手机中跑Ubuntu系统」。 假定成立条件: 1. ARM架构CPU 2. 拥有ROOT权限 大致流程和最终效果:需要将类似Windows下PE的小系统镜像Ubuntu core放到SD卡中,并进行...

    Chroot ubuntu 16.04 on android

    基于「Android手机中跑Ubuntu系统」。

    假定成立条件:
    1. ARM架构CPU
    2. 拥有ROOT权限

    大致流程和最终效果:需要将类似Windows下PE的小系统镜像Ubuntu core放到SD卡中,并进行挂载,然后切入到Ubuntu工作状态。一些Ubuntu core中的命令就可以跑起来了。

    这里以比较热门的Ubuntu 16.04版本的Core系统 为例,官方下载ubuntu-base-16.04.3-base-armhf.tar.gz。这仅是一个压缩包,需要将其生成为「镜像」。然后进行下一步,如何生成镜像这里记录一下,但也把生成过的镜像下载地址ubuntu-base-16.04.3-base-armhf.ext2提供以便直接测试使用。

    生成系统镜像

    准确地讲是生成ext4根文件系统镜像,使用到工具为make_ext4fs

    # 拷贝bin目录到system/下,为适配Android环境变量(否则会遇到问题1,2)
    $ cd ubuntu-base-16.04.3-base-armhf && sudo ln -s . system
    
    # 读取目录大小
    $ sudo du -s ubuntu-base-16.04.3-base-armhf
    189900  ubuntu-base-16.04.3-base-armhf
    # 取一个[大于目录大小][1024倍数的]最小值 (189900/1024 + 1) * 1024 = 190464
    
    # 生成Ext4小系统镜像
    make_ext4fs -l 512M ubuntu-base-16.04.3-base-armhf.ext4 ubuntu-base-16.04.3-base-armhf

    挂载小系统镜像

    # 1. 导入到手机
    $ adb push ubuntu-base-16.04.3-base-armhf.ext4 /sdcard/
    
    # 2. [adb shell进入手机,获取root权限][略] 然后进行挂载
    cd /sdcard/ && busybox mkdir ubuntu
    busybox mount -t ext4 -o loop ubuntu-base-16.04.3-base-armhf.ext4 ubuntu
    
    
    # 3. 正常情况下可以看到小系统中文件
    ls ubuntu

    切入Ubuntu运行环境

    切入运行Ubuntu运行环境主要是使用chroot进行环境切换。

    # 1. 切入Ubuntu,以下命令是以ubuntu目录为新的root目录
    busybox mount --bind /dev ubuntu/dev
    busybox mount --bind /proc ubuntu/proc
    busybox mount --bind /sys ubuntu/sys
    mkdir -p ubuntu/data/local/tmp
    busybox mount --bind /data/local/tmp ubuntu/data/local/tmp
    busybox chroot ubuntu
    
    # 2. 运行su命令 注:重要,否则不能运行复杂命令
    su
    
    # 3. 运行一些命令,如下图:
    1. 查版本
      这里写图片描述

    2. ping 百度IP
      这里写图片描述

    3. ARM版本GCC
      这里写图片描述

    遇到的问题

    问题1: apt-get cannot connect “failure resolving ‘port.ubuntu.com’”

    问题2: Could not create a socket for 91.189.88.150 (f=2 t=1 p=6) - socket (13: Permission denied)

    groupadd -g 3001 aid_bt
    groupadd -g 3002 aid_bt_net
    groupadd -g 3003 aid_inet
    groupadd -g 3004 aid_net_raw
    groupadd -g 3005 aid_admin
    
    usermod -a -G aid_bt,aid_bt_net,aid_inet,aid_net_raw,aid_admin root
    usermod -g aid_inet _apt
    
    echo 'nameserver 114.114.114.114' > /etc/resolv.conf

    参考:https://stackoverflow.com/a/36451445/2193455

    问题3: apt下载时比较慢,使用国内软件源就会加快
    /etc/apt/sources.list改成如下内容

    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse 
    展开全文
  • Linux/x86 chroot and standart shellcode.By Okti (http://okti.nm.ru)----------------------------------------------------------------------------------------------/* Mkdir and Chroot are written in C: *...
  • 该存储库包含使用 chroot-linux 引入Xorg和其他 GNU/Linux 组件的分步教程。 先决条件 在内核中支持循环设备的根植 Android 基本了解 GNU/Linux 命令行工具、Xorg 配置 执行 将androlinux_xorg.sh脚本复制到/data ...
  • 我一直喜欢在我的android里通过chroot方式安装一个debian linux,这样可以随时携带一个完整的linux,但上次升级到jessie后,竟发现有一些网络命令无法使用,例如:ping 127.0.0.1, 报错信息是socket: Permission ...
  • ##Linux Chroot Daemon for Android ##Supports Android 2.3 到 5.0 #Overview:Debdroid 是 Android 平台的工具,它作为守护程序运行完整的 Linux 发行版。 任何有 root 权限的设备都可以运行完全受支持的 ARM ...
  • 需要安卓的root权限 *为非必需 adb连接手机* 打开安卓手机连接和adb客户端机器(安装有adb的机器)连接同一网络 打开安卓手机的网络adb ...android $ 代表安卓普通用户终端 android # 代表...
  • Android 4.4 使用 JuiceSSH(chroot)运行 Alpine Linux想在旧的 Android 手机上安装 Linux 发行版?免费使用海量 Linux 软件?轻松体验各种方便快捷的功能?充分挖掘 Android 旧手机的潜能?前期准备工作安装 Linux...
  • 首先用 CPU-Z 查看一下(已 root 的) Android 设备的硬件架构,然后到官网上下载一个对应架构的 base system 的 tarball. 然后在设备上弄个 ext3/ext4 文件系统,把它解压到里面。 有外置 SD 卡的话,直...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,627
精华内容 650
关键字:

安卓chroot