无法运行自己编译的redroid-11-arm64镜像
编译结果如下
[ 98% 25253/25691] //art/build/apex:art-check-debug-apex-gen generate art-check-debug-apex-gen.dummy
--bitness=auto, trying to autodetect. This may be incorrect!
Detected multilib
[100% 25691/25691] Install system fs image: out/target/product/redroid_arm64/system.img
#### build completed successfully (04:25 (mm:ss)) ####
mac@redroid-builder:/src$ exit
exit
mac@ubuntu:~/android-builder-docker$ cd ~/redroid/out/target/product/redroid_arm64/
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo mount system.img system -o ro
[sudo] password for mac:
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo mount vendor.img vendor -o ro
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo tar --xattrs -c vendor -C system --exclude="./vendor" . | docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?changes=ENTRYPOINT+%5B%22%2Finit%22%2C+%22androidboot.hardware%3Dredroid%22%5D&fromSrc=-&message=&repo=redroid&tag=": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo tar --xattrs -c vendor -C system --exclude="./vendor" . |sudo docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid
sha256:97f35c501a44136e3e0327bc0eb62a14a1ee8042913a324f4bcde2482c945c14
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo umount system vendor
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ tar --xattrs -c -C root . | docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid-dev
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?changes=ENTRYPOINT+%5B%22%2Finit%22%2C+%22androidboot.hardware%3Dredroid%22%5D&fromSrc=-&message=&repo=redroid-dev&tag=": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ tar --xattrs -c -C root . |sudo docker import -c 'ENTRYPOINT ["/init", "androidboot.hardware=redroid"]' - redroid-dev
sha256:d62fdea538d0e70a9830fc573d5d6c5089b42f1a300caf46289af74008a6c7c7
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ docker images
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redroid-dev latest d62fdea538d0 2 minutes ago 2.65kB
redroid latest 97f35c501a44 2 minutes ago 1.74GB
redroid-builder latest 4fba9e45965e 21 hours ago 891MB
当我尝试运行上面的镜像报错docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/init": stat /init: no such file or directory: unknown.
具体命令执行如下
mac@ubuntu:~$ sudo docker run -itd --rm --privileged \
> -v ~/data:/data \
> -p 5555:5555 \
> --device /dev/video0:/dev/video0 \
> --device /dev/video1:/dev/video1 \
> redroid-dev
6fc44a2381046127dbfdffcf64398aed840a0f3f464c109a1567a1aa3a55c1bb
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/init": stat /init: no such file or directory: unknown.
mac@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redroid-dev latest d62fdea538d0 2 hours ago 2.65kB
redroid latest 97f35c501a44 2 hours ago 1.74GB
redroid-builder latest 4fba9e45965e 24 hours ago 891MB
mac@ubuntu:~$ sudo docker run -itd --rm --privileged -v ~/data:/data -p 5555:5555 --device /dev/video0:/dev/video0 --device /dev/video1:/dev/video1 redroid
f32dcaa350815ea31bad6ff14ef993bedb597155a8fa34b555727df2a9343c55
mac@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
mac@ubuntu:~$ sudo docker ps
redroid-dev is a rootfs-only image. You should manually mount system / vendor partitions.
Check dmesg, and figure out why redroid container exits.
mac@ubuntu:~/redroid/out/target/product/redroid_arm64$ sudo docker logs 855a88626036da6996b033fdbd66c07fd03cc0d47af6ac9da9748cac4f343e5d exec /init: exec format error 我在x86_64上运行了我编译的redroid_arm64-userdebug 这似乎是问题所在, 所以我应该编译redroid_x86_64-userdebug么? 那么我如何在redroid_x86_64-userdebug里运行arm64的app?
Try build redorid-x86_64 with native bridge if want to run on x86_64 platforms.
Take a look at https://github.com/remote-android/redroid-doc?tab=readme-ov-file#native-bridge-support