redroid编译指南

1) Setup
# update and install packages
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install -y curl libxml2-utils docker.io docker-buildx git-lfs jq
sudo apt-get remove repo -y && sudo apt-get autoremove -y

# install 'repo'
mkdir -p ~/.bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo
echo 'export PATH=~/.bin:$PATH' >> ~/.bashrc && source ~/.bashrc

# set git variables
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

# 可选。 add current user to Docker group so we don't have to type 'sudo' to run Docker
sudo usermod -aG docker ubuntu # Set your username here
sudo systemctl enable docker
sudo systemctl restart docker

# NOW YOU SHOULD LOGOUT AND LOGIN AGAIN FOR DOCKER TO RECOGNIZE OUR USER

# check if Docker is running
docker --version && docker ps -as
# Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1
# CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES     SIZE
2) Fetch and sync Android and Redroid codes
mkdir ~/redroid && cd ~/redroid

# check supported branch in https://github.com/remote-android/redroid-patches.git
repo init -u https://android.googlesource.com/platform/manifest --git-lfs --depth=1 -b android-11.0.0_r48

# add local manifests
git clone https://github.com/remote-android/local_manifests.git ~/redroid/.repo/local_manifests -b 11.0.0

# sync code | ~100GB of data | ~20 minutes on a fast CPU + connection
repo sync -c -j$(nproc)

# get latest Dockerfile from Redroid repository
wget https://raw.githubusercontent.com/remote-android/redroid-doc/master/android-builder-docker/Dockerfile

# check if 'Webview.apk' files were properly synced by 'git-lfs'. Each .apk should be at least ~80MB in size.
find ~/redroid/external/chromium-webview -type f -name "*.apk" -exec du -h {} +

这里要重点确认git-lfs 是否安装成功了? webview.apk大小是否正确?

4) Apply Redroid patches, create builder and start it
# apply redroid patches
git clone https://github.com/remote-android/redroid-patches.git ~/redroid-patches
 mkdir ~/redroid_link && ln -s ~/redroid/ ~/redroid_link/android-11.0.0_r48
 ~/redroid-patches/apply-patch.sh ~/redroid_link

docker buildx create --use
docker buildx build --build-arg userid=$(id -u) --build-arg groupid=$(id -g) --build-arg username=$(id -un) -t redroid-builder --load .
docker run -it --privileged --rm --hostname redroid-builder --name redroid-builder -v ~/redroid:/src redroid-builder
5) Build Redroid
Now we should be in the redroid-builder docker container
cd /src
. build/envsetup.sh

lunch redroid_x86_64-userdebug
# redroid_arm64-userdebug
# redroid_arm64-userdebug
# redroid_x86_64_only-userdebug (64 bit only, redroid 12+)
# redroid_arm64_only-userdebug (64 bit only, redroid 12+)

# start to build | + ~100GB of data | ~ 2 hours on a fast cpu
m -j$(nproc)


#如果你想销毁容器就执行exit!!,否则按下ctrl+q、ctrl+p 可以出来。
# docker attach f442你的容器ID 就能进去
exit
6) Create Redroid image in HOST
cd ~/redroid/out/target/product/redroid_x86_64
sudo mount system.img system -o ro
sudo mount vendor.img vendor -o ro

#这里可以进行一些属性的编辑,例如  sudo vim vendor/build.prop

# set the target platform(s) with the '--platform flag' below. eg: --platform=linux/arm64,linux/amd64 ....
sudo tar --xattrs -c vendor -C system --exclude="./vendor" . | docker import --platform=linux/amd64 -c 'ENTRYPOINT ["/init", "qemu=1", "androidboot.hardware=redroid"]' - redroid

sudo umount system vendor


# inspect the created image to see if everything is ok
docker inspect redroid:latest | jq '.[0].Config.Entrypoint, .[0].Architecture'
[
  "/init",
  "qemu=1",
  "androidboot.hardware=mt8766"
]
"amd64"

8) Run the container

sudo rm -rf ~/data_dev && docker run -itd --privileged --name Redroid11_Dev -v ~/data_dev:/data -p 5555:5555 redroid:latest

------

调试

获取日志:

 curl -fsSL https://raw.githubusercontent.com/remote-android/redroid-doc/master/debug.sh | sudo bash -s 【容器ID】

或者

wget https://raw.githubusercontent.com/remote-android/redroid-doc/master/debug.sh && chmod +x debug.sh

./debug.sh | sudo bash -s  【容器ID】

进入容器:
did=`docker ps | grep "Redroid11_Dev" | awk '{print $1}'`;docker exec -it $did /system/bin/sh
停止和移除容器:
did=`docker ps | grep "Redroid11_Dev" | awk '{print $1}'`; docker stop $did && docker rm $did

---------

ROM二次开发

安装samba :Samba实现windows和Linux共享文件,环境搭建_samba windows共享 给 linux-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江西省遂川县常驻深圳大使

喜欢本文,打赏下作者吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值