首页 > 其他分享 >香橙派5plus上跑云手机方案一 redroid(带硬件加速)

香橙派5plus上跑云手机方案一 redroid(带硬件加速)

时间:2024-07-05 09:32:17浏览次数:23  
标签:github 香橙 5plus 内核 https redroid 硬件加速 docker com

首发地址:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw

前言

折腾这玩意倒不是为了用来玩游戏啥的,只是想在逆向APP的时候少一点对手机的依赖。毕竟手机刷机步骤也挺烦,一不留神还容易变砖。

像一些对环境检测不严格的APP就可以在上面测试,也方便后面更改系统源码刷机。不过可惜的是无法自定义内核(redroid和Waydroid都是走的容器方案,和主机共享内核),想自定义内核只能用谷歌的cuttlefish或者avd,但是这些在arm上的支持很有限,可以运行但也是没有GPU加速,后面折腾下cuttlefish。

刷Ubuntu

香橙派刷Ubuntu的过程就不说了,有兴趣的看之前那篇文章:香橙派5plus从ssd启动Ubuntu。刷这个系统的话,运行redroid就不需要再安装配置啥了。不过,如果要用虚拟WIFI或者ebpf的话,还是得修改内核参数自己编译linux内核来实现,这个下篇文章具体说编译过程。

redroid

官方教程:https://github.com/remote-android/redroid-doc

检查必要条件

grep binder /proc/filesystems
grep ashmem /proc/misc

如果什么也没打印,则可能需要手动启动(我在一台安装Ubuntu的鲲鹏920的机器使用下面两个命令就可以了,这个机器虽然带的amd的显卡,但是也无法直接调用GPU)

sudo modprobe ashmem_linux
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder

如果这两个命令报错或是没效果,可能是当前使用的linux内核没有开启这两个功能,则需要参考下面的仓库说明来安装支持的内核或是编译一个内核开启这两项功能:https://github.com/remote-android/redroid-modules

GPU加速

使用官方的docker镜像能启动,就是没有GPU加速,视频走的软解(cpu模拟),所以操作起来比较卡,在github的issue[1]里搜索rk3588可以看到几条GPU加速有关的评论。

但之前一直没人分享具体是怎么编译带GPU加速的镜像,评论里只能得出一个有点帮助的结论:从香橙派官方的SDK源码中获取到一些GPU加速相关的驱动文件,放到安卓源码内一起编译。或者直接将这些文件复制到docker容器中,重新启动容器。

这个结论太模糊了,肯定有很多坑,我就一直没试。直到有一个大佬发出了完整的编译过程和源码[2]

教程写的很详细,按照步骤来编译一次就通过了。另外,还有大佬[3]在这个镜像的基础上增加了一个东西。

所以这里使用这位大佬的镜像[4],在这之前先看一下他提到的依赖(内核版本5.10.160和mali ddk g18p0):

那应该没问题,还提到要将mali_csffw.bin文件拷贝到/lib/firmware/下,我看了下这个文件夹下是有这个文件的

默认是链接的g15p0,所以我们把这个软链接删了,创建一个新的链接到g18p0。不过经过测试,用g15p0版本redroid容器也能正常使用GPU。

测试刷视频也还可以,只能说不算卡吧,也不算流畅,毕竟现在手机配置已经很高了,比这个开发板流畅多了。

安装docker

sudo apt install docker.io -y
sudo usermod -aG docker $USER
sudo chmod a+rw /var/run/docker.sock

后两行命令是为了普通用户运行docker不需要加sudo。

启动容器

然后拉取镜像: docker pull cnflysky/redroid-rk3588:12.0.0-latest

docker run -d --privileged \
    -p 5555:5555 \
    -v ~/redroid-data:/data \
   --name redroid \
   cnflysky/redroid-rk3588:12.0.0-latest androidboot.redroid_height=1920 androidboot.redroid_width=1080 androidboot.redroid_magisk=1  androidboot.redroid_virt_wifi=1

然后用adb连接这个端口(adb connect 192.168.31.208:5555)就能用QtScrcpy看到这个容器的桌面了

先装个aida64看看显卡调用是否正常:

显卡渲染用的mali-G610那就没问题,而且刷新率也有60hz,如果走的软解刷新率只有15hz。

magisk

这个容器启动的时候带了一个androidboot.redroid_magisk=1 就是开启magisk,所以开机之后直接就能看到magisk是正常运行的,第一次点进去可能要你重启,使用docker restart redroid重启后就能正常使用了。

lsposed

先在magisk里开启zygisk,然后用adb push命令将lsposed的安装包推到容器内。接着在Modules里安装,然后重启就能看到lsposed也是正常运行的。

随便安装一个xposed模块就能进去lsposed的设置界面,

gapps

官方就有教程[5]说明怎么编译带gapps的docker镜像,不过即使带了gapps也过不了谷歌的safetynet验证,很多APP用不了。

issue里也有人问了,并没有解决方案:https://github.com/remote-android/redroid-doc/issues/378。下载的镜像就有谷歌商店这些。

虚拟WIFI

看了issue,如果不设置虚拟WIFI,有些软件即使在有网的情况也会认定没有网络,比如QQ。因为它们只检测WIFI和流量,这两个在docker容器里都是没有的。但是我测试发现,有虚拟WIFI很多软件会显示没网,没开虚拟WIFI就正常联网,所以建议别开,知道有这么个东西就行了。

所以需要给容器里弄一个虚拟WIFI,需要内核支持[6]

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

切换为ip6tables-legacy后,docker需要重启服务sudo systemctl restart docker,重启机器都没用,会导致容器没网。

而安装的这个系统内核没有开启这个参数,zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM

github提供的内核代码编译起来很简单,基本一步到位就能编译,但可惜的是没有提供修改内核参数的选项,并且当你修改了内核配置文件时,在编译的时候它又会改回来。

折腾了几天,把issue里的问题都翻遍了也没有找到答案,无奈只能自己去看编译脚本,这个具体的过程放到下一篇文章来说,这里提供编译好的内核。

更新内核

内核deb包下载地址,系统用的Ubuntu22[7]https://www.123pan.com/s/ihEKVv-TbOx.html 提取码: AZ3A。除了上面那个参数,我还添加的ebpf相关的参数,这个后面再说。

先用uname -a查看下当前的内核信息

首先把编译好的内核文件传到机器上,然后运行sudo dpkg -i *.deb,一共有五个deb文件,第一个是构建信息,可以不安装。

接着使用sudo reboot重启,在看内核信息的时间。

内核参数也是正常开启:

坑1

更新完内核重启后,原先创建的容器没网了,只有后面创建的容器才能正常上网。最开始我还以为是内核有问题,还得我又把系统刷了一遍,内核重新编译了一遍。

坑2

虽然有网,但是b站视频刷不出来,只能刷新首页,浏览器也访问不了网页。(注意:要先去设置里连接虚拟WIFI才有网)

根据这个里面的说明:https://github.com/CNflysky/redroid-rk3588/issues/2

保证只有无线连接?虽然我没理解什么意思,难道是只能由一个路由,看ip route默认是有两个路由的

第二个是虚拟WIFI,那要不我把第一个删了试试: ip route del 192.168.200.0/24 dev radio0 proto kernel scope link src 192.168.200.2

发现有时候有网,视频能播放出来,大部分时候都很卡,要一些时间才能加载出视频来,但是刷新首页又很快,加载评论也很快。改dns也没用,后面再试试其他软件会不会也是这样。

vpn

可以参考:https://github.com/CNflysky/redroid-rk3588/issues/5,我就不试了。看redroid的说明,启动的时候也可以指定代理。如果全局设置vpn的话,adb可能会断开连接。

音频

可能会失败,多试几次就可以了

引用链接

  • [1] https://github.com/remote-android/redroid-doc/issues?q=rk3588
  • [2] https://github.com/redroid-rockchip
  • [3] https://blog.csdn.net/CNflysky/article/details/136452455
  • [4] https://github.com/CNflysky/redroid-rk3588
  • [5] https://github.com/remote-android/redroid-doc/blob/master/android-builder-docker/README.md
  • [6] https://github.com/redroid-rockchip/vendor_redroid_ext/tree/master/wifi
  • [7] https://github.com/Joshua-Riek/ubuntu-rockchip/releases

本文由博客一文多发平台 OpenWrite 发布!

标签:github,香橙,5plus,内核,https,redroid,硬件加速,docker,com
From: https://www.cnblogs.com/kanadeblisst/p/18285095

相关文章

  • 香橙派 AIpro搭建1Panel运维管理面板实现高效直观的设备状态监控
    ......
  • 悟空派 & 香橙派驱动0.9英寸OLED(IIC)
    悟空派&香橙派驱动0.9寸OLED(IIC)前言​在linux核心板中,一般会引出许多GPIO引脚,方便开发者使用这些GPIO进行额外开发。在本文中使用IIC端口,驱动0.9寸OLED屏幕,显示远程SSH端口,以及CPU当前温度以及更多主板相关信息。1.开启IIC端口​在命令行输入:#具体文件根据自己系......
  • 【ARMv8/ARMv9 硬件加速系列 2.2 -- ARM NEON 的加减乘除(左移右移)运算】
    文章目录NEON加减乘除NEON加减乘除下面代码是使用ARMv8汇编语言对向量寄存器v0-v31执行加、减、乘以及左移和右移操作的示例。ARMv8的SIMD指令集允许对向量寄存器中的多个数据进行并行操作。v0和v1加载数据,对它们进行加、减和乘,左移和右移操作。最后,我们会将结......
  • 【 ARMv8/ARMv9 硬件加速系列 3.5.1 -- SVE 谓词寄存器有多少位?】
    文章目录SVE谓词寄存器(predicateregisters)简介SVE谓词寄存器的位数SVE谓词寄存器对向量寄存器的控制SVE谓词寄存器位数计算SVE谓词寄存器小结SVE谓词寄存器(predicateregisters)简介ARMv9的ScalableVectorExtension(SVE)引入了谓词寄存器(PredicateR......
  • 【Ubuntu开发入门之“悟空派wukongpi/香橙派orangepi H3 linux开发②u-boot移植“】
    Ubuntu开发入门之"orangepiH3linux开发@u-boot移植"问题描述解决方法获取u-boot源码编译配置u-boot制作并烧录TF卡结束语郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的转载请标明出处:攻城狮2015Platform:AllwinnerH3OS:Linuxubunt......
  • 华为matebook 14s笔记本,Chrome浏览器开启硬件加速,屏幕闪屏,黑框,页面屏幕卡死,解决
    解决办法使用了https://zhuanlan.zhihu.com/p/644296061这个连接下的最后一个折中办法解决!一、现象Chrome开启“硬件加速模式”后,在观看视频时,尤其是全屏时,会出现短暂黑屏或黑块或闪屏。如果关闭“硬件加速”,则会造成播放某些高清视频(例如HEVC)视频或弹幕卡顿(似乎还好)。Edge......
  • 香橙派Kunpeng Pro初体验
    引子非常偶然的机会收到了CSDN发送过来的手机短信,邀请参与香橙派开发板评测活动。一开始没注意到,以为是广告。后来直到香橙派的工作人员微信加群之后,才确认活动真实性。看到微信群里来自各地的开发者,大家的评测积极性也很高。本人之前有过树莓派的开发经验,在收到香橙派开发板之......
  • 【OrangePi AIpro】香橙派 AIpro 为AI而生
    产品简介OrangePiAIpro(8T):定义边缘智能新纪元的全能开发板在当今人工智能与物联网技术融合发展的浪潮中,OrangePiAIpro(8T)凭借其强大的硬件配置与全面的接口设计,正逐步成为开发者手中的创新利器。这款开发板不仅代表了香橙派与华为昇腾AI技术路线的深度合作,更是为构建......
  • 香橙派AIpro开发板初体验
    香橙派AIpro开发板初体验一、引言在当前的AI发展浪潮中,边缘计算逐渐成为了研究的热点。香橙派AIpro开发板作为一款基于昇腾AI技术的开发板,凭借其强大的算力和丰富的接口,为AI边缘计算提供了强大的支持。最近,我也是拿到了官方送来的香橙派AIpro开发板,收到后发现包装里不仅有......