# AndroSH - 在 Android 上运行 Linux 发行版(无需 Root,由 ADB/Shizuku 驱动)
<div align="center">
**在您的 Android 设备上运行和管理完整的 Linux 发行版 - 无需 root。**
<img src="https://raw.githubusercontent.com/ahmed-alnassif/androsh/main/Assets/docs/AndroSH.png" alt="AndroSH" width="98%" />
[](https://github.com/ahmed-alnassif/AndroSH/actions/workflows/tests.yml)
[](https://github.com/ahmed-alnassif/AndroSH/stargazers)
[](https://github.com/ahmed-alnassif/AndroSH/releases)
[](https://python.org)
[](/LICENSE)
[](https://www.android.com)
<img src="https://assets.kitploit.com/production/public/readmes/9438/a4edb8815ebca0fde7738d96503897a680bcd0aaf4c21f1b329f30c3a56b6ec3.png" alt="AndroSH Mobile Showcase" width="90%" />
</div>
## 目录
- [快速开始](#quick-start)
- [功能特性](#features)
- [支持的发行版](#supported-distributions)
- [概述](#overview)
- [截图](#screenshots)
- [架构](#architecture)
- [安装](#installation)
- [更新](#updating)
- [使用方法](#usage)
- [使用场景](#use-cases)
- [安全与隐私](#security--privacy)
- [组件与来源](#components--sources)
- [故障排除](#troubleshooting)
- [贡献](#contributing)
- [许可证](#license)
- [作者](#author)
- [支持](#support)
## 快速开始
> [!Important]
> **开始之前:** 请先安装并运行 [Shizuku](https://github.com/RikkaApps/Shizuku/releases/latest)。如果您是 AndroSH 的新用户,请阅读下方完整的[安装](#installation)部分 - 其中涵盖了 Shizuku 的设置和故障排除。
```bash
# 在 Termux 中
apt update && apt install -y python git
git clone --depth 1 https://github.com/ahmed-alnassif/AndroSH.git
cd AndroSH
pip install -r requirements.txt
python main.py install
androsh setup demo --distro debian --type stable
androsh launch demo
```
## 功能特性
- **多发行版**:同时运行多个 Linux 发行版(Arch、Fedora、Alpine、Debian、Ubuntu、Kali、Void、Manjaro、Chimera、openSUSE)
- **由 ADB/Shizuku 驱动的 Linux**:通过 Android 的提权 Shell 层运行完整的 Linux 发行版,并直接与 Android 系统集成 - 无需 root
- **基于 SQLite**:快速、可靠地跟踪您的环境
- **隔离**:每个 Linux 环境通过 PRoot 运行,具有用户空间文件系统/进程隔离
- **GUI 支持**:可与 Termux:X11 配合使用,提供完整的桌面环境 - [设置指南](https://github.com/ahmed-alnassif/AndroSH/discussions/6#discussioncomment-15720947)
## 支持的发行版










以上每个发行版均来自经过验证的 rootfs 源,并在隔离的 proot 环境中运行 - 无需 root。
## 概述
AndroSH 让您可以通过 ADB/Shizuku 执行层运行 PRoot,从而在 Android 上部署和管理多个完整的 Linux 发行版。这提供了无需 root 的 Android 端提权执行,同时从 Linux 环境内部保留与 Android 系统的直接集成。
| 能力 | AndroSH | 典型替代方案 |
|---|---|---|
| 同时运行多个发行版 | 是 | 通常仅支持一个发行版 |
| 环境管理 | SQLite + CLI | 手动处理文件 |
| Android 系统集成 | ADB/Shizuku 执行 | 因解决方案而异 |
| 多个隔离实例 | 是 | 单一实例 |
| 需要 Root | 否(ADB/Shizuku) | 通常需要解锁引导加载程序 |
## 截图
| 命令 | 预览 | 展示内容 |
|---|:---:|---|
| `androsh launch kali` | [查看](https://github.com/ahmed-alnassif/androsh/blob/main/Assets/Screenshots/launch-kali.png) | 启动 Kali NetHunter 环境 |
| `androsh list` | [查看](https://github.com/ahmed-alnassif/androsh/blob/main/Assets/Screenshots/list-available.png) | 所有可用的发行版 |
| `androsh lsd` | [查看](https://github.com/ahmed-alnassif/androsh/blob/main/Assets/Screenshots/list-installed.png) | 您已安装的环境 |
## 架构
```
Android Device → ADB/Shizuku Execution Context→ Proot Virtualization → Linux Environment(s)
```
```mermaid
graph TD
A[Android Device] --> B[ADB / Shizuku]
B --> C[Android Shell Execution Context]
C --> D[PRoot]
D --> E[Alpine]
D --> F[Debian]
D --> G[Ubuntu]
D --> H[Kali NetHunter]
E --> I[Android System Integration]
F --> I
G --> I
H --> I
I --> K[Android Command Execution]
I --> L[Android Filesystem Access]
I --> M[Android Network Access]
style D fill:#FF6B00,color:white
style I fill:#4CAF50,color:white
```
从任何发行版内部,您都可以直接访问 Android 系统:
```bash
# 列出已安装的 Android 软件包
pm list packages -f
# 内核信息
cat /proc/version
# Android 系统属性
getprop | grep version
# 网络路由
ip route show
```
## 安装
### 要求
- 已安装并运行 [Shizuku](https://github.com/RikkaApps/Shizuku/releases/latest) 的 Android 设备
- Python 3.8+
- [Termux](https://github.com/termux/termux-app/releases/latest) 或兼容的终端模拟器
- 至少 2 GB 可用存储空间
### 设置
```bash
# 在 Termux 中安装先决条件
apt update && apt install -y python git
# 获取 AndroSH
git clone --depth 1 https://github.com/ahmed-alnassif/AndroSH.git
cd AndroSH
# 安装依赖
pip install -r requirements.txt
# 使 `androsh` 命令全局可用
python main.py install
```
> [!Tip]
> 当您运行 `androsh setup` 时,AndroSH 会自动检查 Shizuku 是否配置正确,如果未配置,会引导您进行修复。
## 更新
```bash
cd AndroSH
git pull
pip install -r requirements.txt
```
## 使用方法
### 部署环境
```bash
androsh setup production --distro debian --type stable
```
### 启动它
```bash
androsh launch production
# 您现在已是 Debian 环境内的 root 用户
root@localhost:~# apt update && apt install python3 git
```
### 管理环境
```bash
androsh list # 查看可安装的内容
androsh lsd # 查看已安装的内容
androsh clean production # 释放空间 / 删除临时文件
androsh remove production --force # 删除一个环境
```
### 直接管理发行版
```bash
androsh distro list # 列出可用的发行版
androsh distro info ubuntu # 获取发行版的详细信息
androsh distro download alpine --type alpine-minirootfs --file alpine-edge.tar.gz
```
### 完整命令参考
请参阅 [AndroSH_Help.md](https://github.com/ahmed-alnassif/androsh/blob/main/Assets/docs/AndroSH_Help.md) 了解所有命令和标志,包括详细程度控制(`--verbose` / `--quiet`)和时间戳格式(`--time-style`)。
## 使用场景
**学习 Linux**
```bash
androsh setup classroom --distro ubuntu --type stable
apt install gcc python3-dev git curl wget
```
**安全研究 / 渗透测试**
```bash
androsh setup pentest --distro kali-nethunter --type full
apt install nmap metasploit-framework wireshark
```
**轻量级开发环境**
```bash
androsh setup devops --distro alpine --type alpine-minirootfs
apk add build-base git nodejs npm docker-cli
```
**移动工作站**
```bash
androsh setup field --distro debian --type stable
apt install vim tmux htop net-tools
```
**同时运行多个环境**
```bash
androsh setup frontend --distro ubuntu -t stable
androsh setup backend --distro debian -t stable
androsh setup security --distro kali-nethunter -t nano
androsh lsd
```
## 安全与隐私
- **Android 权限边界**:Android 端操作在 ADB/Shizuku 执行上下文可用的权限范围内运行;无需 Android root。
- **进程隔离**:每个环境通过 proot 沙箱化运行
- **完整性检查**:SHA-256 校验和验证每次下载
- **无遥测**:零数据收集,一切数据都保留在您的设备本地
- **开源**:每个组件都可审计
## 组件与来源
| 组件 | 来源 | 用途 |
|---|---|---|
| PRoot | [ahmed-alnassif/proot](https://github.com/ahmed-alnassif/proot) | 静态链接、针对 Android 优化的自动化构建 |
| BusyBox NDK | [Magisk-Modules-Repo/busybox-ndk](https://github.com/Magisk-Modules-Repo/busybox-ndk) | 用于 Android 的核心 Unix 实用程序(tar、grep、awk 等) |
构建流水线:[PRoot builder](https://github.com/ahmed-alnassif/proot) · [BusyBox NDK sources](https://github.com/ahmed-alnassif/busybox) · [AndroSH core](https://github.com/ahmed-alnassif/AndroSH)
所有依赖项均可追溯至其上游来源,并与安全更新保持同步。
## 故障排除
**重置损坏的环境**
```bash
androsh setup <distro> --distro debian -t stable --resetup
```
**清理临时文件**
```bash
androsh clean <distro>
```
**重新安装全局 `androsh` 命令**
```bash
cd AndroSH
python main.py install
```
**Shizuku 问题**
- 确认 Shizuku 正在运行,并且 AndroSH 已在其中获得授权
- 如果问题仍然存在,请重启设备以恢复 Shizuku 服务
## 贡献
欢迎各种形式的贡献 - 代码、文档、错误报告、功能想法、翻译、测试,或者只是分享反馈。无论您是在修复拼写错误还是添加对新发行版的支持,每一份贡献都有帮助。
参与方式:
- **代码**:修复错误、添加功能、提升性能
- **文档**:改进 README、编写指南、添加示例
- **测试**:在不同设备/Android 版本上尝试 AndroSH 并报告您的发现
- **错误报告**:提交 issue,并附上清晰的重现步骤
- **功能请求**:提出您希望支持的想法或工作流程
- **社区支持**:在 issue/讨论中帮助回答问题
任何贡献都不算小 - 如果您不确定从哪里开始,请提交 issue 并询问。
设置开发环境:
```bash
git clone https://github.com/ahmed-alnassif/AndroSH.git
cd AndroSH
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
## 贡献者
[](https://github.com/ahmed-alnassif/AndroSH/graphs/contributors)
## 许可证
GPLv3 - 可免费用于商业和研究用途。
## 作者
**Ahmed Al-Nassif**
- GitHub: [@ahmed-alnassif](https://github.com/ahmed-alnassif)
## 支持
- **为仓库加星**,如果您觉得它有用 - 这有助于其他人发现该项目
- **分享它**给朋友、社区或在社交媒体上,如果 AndroSH 对您有帮助
- **提交 issue** 以报告错误
- **发起讨论** 以建议功能或提问
- **分享您的使用场景** - 告诉我们您如何使用 AndroSH,这有助于塑造未来的开发
- **传播消息**,通过撰写文章、制作视频,或在 Android/Linux 爱好者聚集的地方推荐它
每一份支持,无论大小,都有助于项目持续成长。
---
<div align="center">
*口袋里的专业 Linux 环境 - 无需 Android root。*
</div>