快轉到主要內容

自建Android雲手機之樹莓派5刷LineageOS + Play商店

分類   Linux系統 Self-hosting自架
標籤   Cloud Gaming Raspberry Pi Scrcpy
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

打造一個永遠在線上的低功耗雲手機,使用Android或iOS手機隨時隨地遠端存取。

根據Geekbench跑分資料,Raspberry Pi 4代以後的處理器性能,已經接近一些Android低階機,用來玩不吃3D效能的手機遊戲是可行的。

如果要在Raspberry Pi裝Android,可以利用開發者KonstaKANG維護的LineageOS系統。

論建置雲手機,之前討論過 Linux x86電腦架設雲手機的作法。那這裡為什麼不用Linux + Android模擬器的方案呢?因為那些都是虛擬機,要不然就是容器。

這裡LineageOS的優勢在於是在實體機上執行的,而且系統是ARM架構,沒有x86電腦靠libhoudini轉譯造成的不相容問題,且LineageOS預設狀態下沒有Root。這樣玩遊戲就沒理由說我用模擬器不給玩了吧?除非那些遊戲認為「隨時處在充電狀態」的Android裝置很可疑。

最後的一點是,如果你真的需要特定感測器零件,樹莓派什麼都能買配件來外掛,相機?麥克風?喇叭?GPS?甚至4G模組都有貨!所有元件裝一裝就變成 Pine64 PinePhone了吧。當然,什麼硬體都不裝,作為單純的Android系統載體也行。

1. 材料
#

  • 樹莓派 x1,需為4代以後,RAM在4GB以上。
  • 64GB SD卡x1或是SSD外接盒。LineageOS系統是預設安裝到SD卡,嫌慢的可以將系統寫入到SSD,使用硬碟外接盒,然後再調整cmdline設定USB優先開機。
  • KonstaKANG維護的LineageOS映像檔,目前對應Android 14
  • 上傳速度在40Mbps(5MB/s)以上的網路,這是720p串流的最低要求。
  • HDMI欺騙器x1 + micro HDMI轉HDMI x1。為什麼要有HDMI欺騙器?Android需要有螢幕才能輸出畫面,如果不想接實體螢幕佔空間,那麼HDMI欺騙器是好選擇。
  • 鍵盤、滑鼠、螢幕(僅初次設定會用到)
  • 內網穿透軟體,例如ZerotTier或TailScale
  • 遠端控制軟體,例如Rustdesk、Scrcpy、VNC

2. 安裝LineageOS和Play商店
#

樹莓派刷Android參考 這篇文章

在設定好遠端控制連線之前,先不要拔掉螢幕與鍵盤。

3. 從外網存取樹莓派
#

設定 內網穿透軟體,在樹莓派安裝VPN APP。

Android 14應該可以在系統設定 → 網路,設定開機後自動連線到特定VPN。

4. 遠端控制樹莓派Android系統
#

要流暢遠端控制,使用Scrcpy或者Rustdesk。Rustdesk需要每次開機後手動啟動,參見 透過RustDesk實現手機遠端控制另一部手機

KonstaKANG的LineageOS系統設定還有一個常駐的VNC服務,雖然圖形效能很爛但可以作為備用遠端存取方案。VNC客戶端可以使用RealVNC Viewer或者Remmina。

Scrcpy需要靠ADB over TCP連線。Scrcpy電腦版客戶端請到 Github下載。手機版的話Android下載「甲殼蟲ADB助手」,iOS下載 Scrcpy Remote

  1. 在LineageOS的系統設定 → 關於平板連按5下,開啟開發人員選項

  2. 在開發人員選項啟用ADB偵錯

  3. 到系統 → Raspberry Pi Settings,啟用ADB偵錯。這裡會顯示裝置的IP和通訊埠(注意連上VPN後IP可能會變化)

  4. 於電腦端開啟終端機,使用adb指令與樹莓派連線,並手動同意

adb connect 樹莓派IP:5555
  1. 啟動Scrcpy。欲改善無線延遲,降低位元率(bitrate),或是在Android系統設定調低自身解析度到720p以下。
adb devices

scrcpy
  1. 在確認好樹莓派可以用手機遠端控制後,就可以拔出螢幕,改用HDMI欺騙器替代樹莓派螢幕了。

實測如果用LineageOS 21的內建設定修改螢幕解析度的話,Scrcpy 2.1就連不上了!可能得改用 SecondScreen修改解析度。

LineageOS的螢幕方向可以在系統設定 → 系統 → Raspberry Pi Settings強制修改

LineageOS的軟體鍵盤需要到系統 → 鍵盤 → 實體鍵盤啟用

Scrcpy音效應該不會傳送過來。如果硬要音效,可以用閉源軟體 AudioRelay

相關文章

ws scrcpy網頁遠端控制Android手機,免裝軟體,達成類似雲手機的效果
分類   Linux系統 Self-hosting自架
標籤   Scrcpy Cloud Gaming
如何自架開源雲手機,用手機Scrcpy APP連線控制
分類   Linux系統 Self-hosting自架
標籤   Cloud Gaming Android-X86 Scrcpy Docker
NymphCast,自架開源Chromecast替代品,適用樹莓派
分類   Linux系統 Self-hosting自架
標籤   Raspberry Pi Chromecast Media Server

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。