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

首發(fā)地址:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw

前言

折騰這玩意倒不是為了用來玩游戲啥的码党,只是想在逆向APP的時候少一點對手機的依賴德崭。畢竟手機刷機步驟也挺煩,一不留神還容易變磚揖盘。

像一些對環(huán)境檢測不嚴格的APP就可以在上面測試眉厨,也方便后面更改系統(tǒng)源碼刷機。不過可惜的是無法自定義內(nèi)核(redroid和Waydroid都是走的容器方案兽狭,和主機共享內(nèi)核)憾股,想自定義內(nèi)核只能用谷歌的cuttlefish或者avd,但是這些在arm上的支持很有限箕慧,可以運行但也是沒有GPU加速服球,后面折騰下cuttlefish。

刷Ubuntu

香橙派刷Ubuntu的過程就不說了销钝,有興趣的看之前那篇文章:香橙派5plus從ssd啟動Ubuntu有咨。刷這個系統(tǒng)的話,運行redroid就不需要再安裝配置啥了蒸健。不過座享,如果要用虛擬WIFI或者ebpf的話,還是得修改內(nèi)核參數(shù)自己編譯linux內(nèi)核來實現(xiàn)似忧,這個下篇文章具體說編譯過程渣叛。

redroid

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

檢查必要條件

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

如果什么也沒打印,則可能需要手動啟動(我在一臺安裝Ubuntu的鯤鵬920的機器使用下面兩個命令就可以了盯捌,這個機器雖然帶的amd的顯卡淳衙,但是也無法直接調(diào)用GPU)

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

如果這兩個命令報錯或是沒效果,可能是當前使用的linux內(nèi)核沒有開啟這兩個功能饺著,則需要參考下面的倉庫說明來安裝支持的內(nèi)核或是編譯一個內(nèi)核開啟這兩項功能:https://github.com/remote-android/redroid-modules

GPU加速

使用官方的docker鏡像能啟動箫攀,就是沒有GPU加速,視頻走的軟解(cpu模擬)幼衰,所以操作起來比較卡靴跛,在github的issue[1]里搜索rk3588可以看到幾條GPU加速有關(guān)的評論。

但之前一直沒人分享具體是怎么編譯帶GPU加速的鏡像渡嚣,評論里只能得出一個有點幫助的結(jié)論:從香橙派官方的SDK源碼中獲取到一些GPU加速相關(guān)的驅(qū)動文件梢睛,放到安卓源碼內(nèi)一起編譯肥印。或者直接將這些文件復(fù)制到docker容器中绝葡,重新啟動容器深碱。

這個結(jié)論太模糊了,肯定有很多坑藏畅,我就一直沒試敷硅。直到有一個大佬發(fā)出了完整的編譯過程和源碼[2]

教程寫的很詳細,按照步驟來編譯一次就通過了墓赴。另外竞膳,還有大佬[3]在這個鏡像的基礎(chǔ)上增加了一個東西。

所以這里使用這位大佬的鏡像[4]诫硕,在這之前先看一下他提到的依賴(內(nèi)核版本5.10.160和mali ddk g18p0):

那應(yīng)該沒問題坦辟,還提到要將mali_csffw.bin文件拷貝到/lib/firmware/下,我看了下這個文件夾下是有這個文件的

默認是鏈接的g15p0章办,所以我們把這個軟鏈接刪了锉走,創(chuàng)建一個新的鏈接到g18p0。不過經(jīng)過測試藕届,用g15p0版本redroid容器也能正常使用GPU挪蹭。

測試刷視頻也還可以,只能說不算卡吧休偶,也不算流暢梁厉,畢竟現(xiàn)在手機配置已經(jīng)很高了,比這個開發(fā)板流暢多了踏兜。

安裝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看看顯卡調(diào)用是否正常:

顯卡渲染用的mali-G610那就沒問題碱妆,而且刷新率也有60hz肉盹,如果走的軟解刷新率只有15hz。

magisk

這個容器啟動的時候帶了一個androidboot.redroid_magisk=1就是開啟magisk疹尾,所以開機之后直接就能看到magisk是正常運行的上忍,第一次點進去可能要你重啟,使用docker restart redroid重啟后就能正常使用了纳本。

lsposed

先在magisk里開啟zygisk窍蓝,然后用adb push命令將lsposed的安裝包推到容器內(nèi)。接著在Modules里安裝繁成,然后重啟就能看到lsposed也是正常運行的吓笙。

隨便安裝一個xposed模塊就能進去lsposed的設(shè)置界面,

gapps

官方就有教程[5]說明怎么編譯帶gapps的docker鏡像朴艰,不過即使帶了gapps也過不了谷歌的safetynet驗證观蓄,很多APP用不了。

issue里也有人問了祠墅,并沒有解決方案:https://github.com/remote-android/redroid-doc/issues/378侮穿。下載的鏡像就有谷歌商店這些。

虛擬WIFI

看了issue毁嗦,如果不設(shè)置虛擬WIFI亲茅,有些軟件即使在有網(wǎng)的情況也會認定沒有網(wǎng)絡(luò),比如QQ狗准。因為它們只檢測WIFI和流量克锣,這兩個在docker容器里都是沒有的。但是我測試發(fā)現(xiàn)腔长,有虛擬WIFI很多軟件會顯示沒網(wǎng)袭祟,沒開虛擬WIFI就正常聯(lián)網(wǎng),所以建議別開捞附,知道有這么個東西就行了巾乳。

所以需要給容器里弄一個虛擬WIFI,需要內(nèi)核支持[6]

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

切換為ip6tables-legacy后鸟召,docker需要重啟服務(wù)sudo systemctl restart docker胆绊,重啟機器都沒用,會導(dǎo)致容器沒網(wǎng)欧募。

而安裝的這個系統(tǒng)內(nèi)核沒有開啟這個參數(shù)压状,zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM

github提供的內(nèi)核代碼編譯起來很簡單,基本一步到位就能編譯跟继,但可惜的是沒有提供修改內(nèi)核參數(shù)的選項种冬,并且當你修改了內(nèi)核配置文件時,在編譯的時候它又會改回來还栓。

折騰了幾天碌廓,把issue里的問題都翻遍了也沒有找到答案,無奈只能自己去看編譯腳本剩盒,這個具體的過程放到下一篇文章來說谷婆,這里提供編譯好的內(nèi)核。

更新內(nèi)核

內(nèi)核deb包下載地址辽聊,系統(tǒng)用的Ubuntu22[7]https://www.123pan.com/s/ihEKVv-TbOx.html 提取碼: AZ3A纪挎。除了上面那個參數(shù),我還添加的ebpf相關(guān)的參數(shù)跟匆,這個后面再說异袄。

先用uname -a查看下當前的內(nèi)核信息

首先把編譯好的內(nèi)核文件傳到機器上,然后運行sudo dpkg -i *.deb,一共有五個deb文件玛臂,第一個是構(gòu)建信息烤蜕,可以不安裝封孙。

接著使用sudo reboot重啟,在看內(nèi)核信息的時間。

內(nèi)核參數(shù)也是正常開啟:

坑1

更新完內(nèi)核重啟后,原先創(chuàng)建的容器沒網(wǎng)了共螺,只有后面創(chuàng)建的容器才能正常上網(wǎng)。最開始我還以為是內(nèi)核有問題膜蠢,還得我又把系統(tǒng)刷了一遍,內(nèi)核重新編譯了一遍莉兰。

坑2

雖然有網(wǎng)挑围,但是b站視頻刷不出來,只能刷新首頁糖荒,瀏覽器也訪問不了網(wǎng)頁杉辙。(注意:要先去設(shè)置里連接虛擬WIFI才有網(wǎng))

根據(jù)這個里面的說明: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

發(fā)現(xiàn)有時候有網(wǎng)泉孩,視頻能播放出來硼端,大部分時候都很卡,要一些時間才能加載出視頻來寓搬,但是刷新首頁又很快珍昨,加載評論也很快。改dns也沒用句喷,后面再試試其他軟件會不會也是這樣镣典。

vpn

可以參考:https://github.com/CNflysky/redroid-rk3588/issues/5,我就不試了唾琼⌒执海看redroid的說明,啟動的時候也可以指定代理锡溯。如果全局設(shè)置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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芜茵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倡蝙,更是在濱河造成了極大的恐慌九串,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猪钮,居然都是意外死亡品山,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門烤低,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谆奥,“玉大人,你說我怎么就攤上這事拂玻。” “怎么了宰译?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵檐蚜,是天一觀的道長。 經(jīng)常有香客問我沿侈,道長闯第,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任缀拭,我火速辦了婚禮咳短,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛛淋。我一直安慰自己咙好,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布褐荷。 她就那樣靜靜地躺著勾效,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叛甫。 梳的紋絲不亂的頭發(fā)上层宫,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音其监,去河邊找鬼萌腿。 笑死,一個胖子當著我的面吹牛抖苦,可吹牛的內(nèi)容都是我干的毁菱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼锌历,長吁一口氣:“原來是場噩夢啊……” “哼鼎俘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辩涝,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤贸伐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怔揩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捉邢,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡脯丝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了伏伐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宠进。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖藐翎,靈堂內(nèi)的尸體忽然破棺而出材蹬,到底是詐尸還是另有隱情,我是刑警寧澤吝镣,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布堤器,位于F島的核電站,受9級特大地震影響末贾,放射性物質(zhì)發(fā)生泄漏闸溃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一拱撵、第九天 我趴在偏房一處隱蔽的房頂上張望辉川。 院中可真熱鬧,春花似錦拴测、人聲如沸乓旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寸齐。三九已至,卻和暖如春抄谐,著一層夾襖步出監(jiān)牢的瞬間渺鹦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工蛹含, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毅厚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓浦箱,卻偏偏與公主長得像吸耿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酷窥,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容