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

首发地址: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
  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值