三年前曾經介紹過 android-x86 4.* 版。 前陣子為了上課需要, 再次試玩。 現在的 Nougat 版 (7.*) 已可安裝 google play; 不過目前對我來說, 有 f-droid 就夠了。 64 bit 好像沒什麼特別用處, 從官網下載 32bit 版本好了: android-x86-7.1-r2.iso。 另外, 我試過 CM 版 (CyanogenMod), 但是安裝完成後第一次開機要半小時、 adb 不能用、 有時安裝會卡在選語言的畫面。 總之還是用原始的 android-x86 比較穩。
一、 準備硬碟
用虛擬機來安裝作業系統比較方便, 可以一邊繼續做其他事。 網路上用 Virtualbox 的教學文比較多; 但我偏好用 kvm。 此外, zfs 的 snapshot 快照功能很好用, 所以我們要在 zfs 上面建一個 volume。 如果你直接拿實體機安裝, 請跳到這節最後面。
- 建立一個 zfs volume:
zfs create -V 4G snowowl/ax86
- 用
fdisk /dev/zvol/snowowl/ax86
或cfdisk /dev/zvol/snowowl/ax86
切一個分割就好、 佔滿所有空間。 搜尋 「cfdisk 分割」 可以找到很多教學文。 - 如果
ls -l /dev/zvol/snowowl
看不到 ax86-part1 , 可能還需要手動:partprobe /dev/zvol/snowowl/ax86
。 - 不知道為什麼, 如果讓安裝程式自己格式化硬碟,
可能會出錯, 所以我們先手動格式化, 等一下安裝時則選擇不要格式化。
又因為 android x86 的核心版本略舊, 最多只允許檔案系統長到
2^32 個 blocks, 所以建立 ext4 檔案系統時,
必須指定 不要 用
64bit 的定址空間:
mkfs -t ext4 -O ^64bit /dev/zvol/snowowl/ax86-part1
- 啟動:
kvm -m 2048 -monitor stdio -vga std -cpu host -usbdevice mouse -boot order=dc -cdrom .../android-x86-7.1-r2.iso /dev/zvol/snowowl/ax86
注意! 記憶體若不夠, 會一直 reboot。 以上 kvm 指令參考 官網 debug-howto。
如果你選擇不用虛擬機, 而是直接用光碟開實體機, 那麼就只需要挑一顆空的硬碟或隨身碟, 並且事先在 linux 底下做上述 「分割」 跟 「mkfs」 那兩步即可。
二、 安裝過程選項
- 開機選單: 第三個選項 「installation - Install Android-x86 to harddisk」
- 安裝到哪裡? (select a partiton to install LineageOS)
- Do not format
- 安裝 GRUB? Yes
- 把 /system 設為 rw? Yes
- 等它安裝... (不用一分鐘)
- reboot, 再次看到開機選單時, 暴力關機。
完成後, 從 host: zfs snapshot snowowl/ax86@0-fresh
萬一等一下玩壞了, 可以用 zfs rollback snowowl/ax86@0-fresh
還原到這個時間點。
三、 初次開機的設定
再次開機: kvm -m 2048 -monitor stdio -soundhw es1370
-net nic -net user,hostfwd=tcp::5022-:5555 /dev/zvol/snowowl/ax86
這裡的 -net nic -net ...:5022-:5555
是為了等一下要用 adb。
在較慢的機器上, 滑鼠有點鈍鈍的。
- 開始設定、 「設為新裝置」。
- 設定 google 帳戶時, 我選擇 「略過」, 因為我的 apps 主要來自 f-droid 市集。
- google 服務頁面, 我通通關掉, 只打開 「協助改善 android 體驗」 的匿名資料。
- 「主螢幕應用程式」 有兩個可選, 我選 Launcher3。 如果改變主意, 可從 「設定」 進入 「應用程式」, 再從右上角的 「設定」 進入 「主畫面應用程式」 更改。
- 如何關機? 按 ctrl-alt-delete 會出現關機選單。
或是按 alt-f1 會切換到命令列,
然後可以下
reboot -p
關機。 如果改變主意, 可以按 alt-f7 切回圖形介面。 如果按這些鍵, 結果被 host 攔截下來, 那麼可以改從 kvm 命令列下:sendkey ctrl-alt-delete
或sendkey alt-f1
。
可以先關機、 再次從 host 做快照:
zfs snapshot snowowl/ax86@1-setup
四、 自由的起點
再次啟動。
- 從 host (lubuntu) 的另一個分頁:
adb connect localhost:5022
然後adb shell
連進 android x86。 可以下 free、 df、 uname -a、 ls 等等指令了解環境。 再試一下 su, 感受一下以前在手機上從未實現過的自主權。 - 安裝 f-droid。 打開 chrome、 搜尋 f-droid、
下載它的 apk、 「不安裝來路不明的應用程式」改設定成
「允許安裝來源不明的應用程式」。
再次回到 「下載」、 雙擊 apk、 開啟 Play 安全防護。
如果從模擬器下載之後無法安裝, 就從 host 下載並下安裝指令:
adb install FDroid.apk
命令列最可靠了。 - 安裝完成後, 第一次開啟 f-droid, 需要等幾分鐘, 讓它更新套件庫, 才會出現套件清單。
- 安裝一個 file manager, 例如 ghost commander。 裝了它之後, 我才能換桌布、 播音樂 (雖然播音樂卡卡的, 速度不夠)。
完成後, 從 host: zfs snapshot snowowl/ax86@1-f-droid
。
五、 刻苦中文輸入法
試過幾個中文輸入法, 通通失敗。 google zhuyin 輸入法閃退; gboard (忘記了); lime ime 雖是自由軟體, 卻需要登入 google 帳號才能用。 所以只好:
- 安裝 termux。
- 如果字太小, 可以從 kvm 的 monitor 送按鍵:
sendkey ctrl-alt-equal
(其實是要送出 ctrl-alt-+ 的意思, 但不必按 shift 鍵) - 回到 termux, 練習安裝套件:
apt update ; apt install nano
也可以用apt search editor
搜尋所有 game 相關套件。 - su 變身。 會被詢問要暫時允許還是永久允許。
mkdir /sdcard/my ; touch /sdcard/my/ch.txt ; tail -f /sdcard/my/ch.txt
- 在 host (lubuntu) 的終端機上打:
adb shell 'cat >> /sdcard/my/ch.txt'
然後開始打中文, 在 guest 裡面的 termux 終端機就會跟著出現中文。 - 在 termux 裡面, 長按你要的中文, 就可以 copy paste 到其他的 apps 去。
- 用完之後, 兩頭都按 ctrl-c 結束。
不知道貴哥有沒用用過 anbox 或其它用lxc 包裝的 android ? 感覺會比kvm好很多
回覆刪除container 裡的 android! 太帥了。 謝謝, 以後再來試試看。
刪除