root 新小手機 atom 過程

最近入手群眾募資的新手機,unihertz 的 atom。 因為想裝把手機摸擬成藍牙鍵盤或滑鼠的 app, 所以就搜尋到 xda 上 root 的方法, 用 magisk 還蠻簡單的,就照作也成功了。 雖然結果因為手機是 mtk, 藍牙模組和 aosp 不合, 所以 bluetooth+ 不能動。總之 root 了。

刷機流程

magisk 是 systemless root, 大概是不會改到 system 分區的 root。 用 magisk manager 時只要有系統的 boot.img , 就能用 magisk manager patch 該映像檔, 用 fastboot 刷入達成 root。

  1. 取得你手機的 boot 分區映像檔。 據 xda 老鳥的說法, 小廠的手機可以和原廠要,原廠一般會給。 手機變磚可以用原廠 rom 刷回來。

    這裡也備份一份 rom ,預防原連結死掉。 原廠是給了一份壓縮檔,裡面有各分區的映像檔, 像刷 magisk 要的 boot 分區是 boot-verified.img

  2. 在手機上安裝 magisk manager, 可以 在 magisk 的 github 載 apk

  3. 之後把該映像檔傳到手機上,啟動 magisk manager, 選擇安裝,補丁該映像檔。 之後 magisk 就會修改該映像檔。

  4. 設定 > 系統 > 關於手機 裡連按版本號碼, 直到出現 設定 > 系統 > 開發人員選項 。 之後把 adb 和 oem 解鎖打開。

  5. 再把該 patch 過的映像檔傳回電腦。 接著把手機開機到 fastboot 模式,接上電腦。 如果不知道怎麼按,可以用 adb reboot bootloader 。 之後可以用 fastboot devices 檢查接上電腦的 android。

  6. 接著要刷 boot 分區,所以要先解鎖。 現在的 android 如果要刷,要先解鎖, 同時為了安全性,解鎖時會同時清空手機的資料, 回復原廠設定,防止使用者資料外洩。

    下指令 fastboot oem unlock , 手機會上會和你確定是否要解鎖,用音量鍵確定。

  7. 之後就能用 fastboot flash boot patch_boot.img 把映像檔刷進去。 刷完後為了安全,可以再 fastboot oem lock 鎖回來, 這樣別人要 hack 進你的手機, 也要 oem unlock,也會清空資料,也就不會外洩。

  8. 最後就能開機了。 刷完後第一次開機時會稍久,好像還會重開機一次。 總之就完成了。

我是根據 xda 上的 atom thread 的人的說明 root 成功的, 感覺用 fastboot 蠻方便的,好像很多手機都可以直接刷。 只是要下一點指令,且要 unlock 會清空資料。

atom 好像沒有區的問題,我也沒看到映像檔也分區。 刷機時就直接刷了,也沒碰到問題。

android 模擬藍牙鍵鼠

之前想要 root 是因為想要用手機控制投影片,感覺還蠻方便的。 一開始是想到用無線滑鼠,就能拿著滑鼠遠程當簡報筆。 後來又想到現在的手機都有藍牙功能, 可能可以用手機模擬滑鼠或鍵盤,就能用手機當簡報筆用。

結果在 google play 找到的 app 都是需要 root 的, 不然就是要另外在電腦上裝其它軟體。 其實也有找到一些可以控制簡報的, 但比較想要能直接當滑鼠用的, 因為可能會用瀏覽器放簡報, 所以能模擬基礎鍵盤滑鼠比較好。 有一款叫 true mouth/kb 的, 就是能辦到類似的事,但他要先裝 bluetooth+ 。 bluetooth+ 試了就發現要 root,所以就 root 了。

root 後執行 bluetooth+ , 他顯示 atom 是用 mtk 的模組, 可能和 aosp 的一些 api 不合。 結果真得不合,root 後 bluetooth+ 還是不能跑。

總之就 root 成功了,但還是不能用手機來模擬藍牙鍵鼠。 之後可能會用到其它 root 功能吧。

atom 開機到 fastboot

雖然可以簡單連上 adb 後, 下指令 adb reboot bootloader 開機到 fastboot, 但如果手機半磚了進不了系統,那就不能用 adb 重開了。 大部份手機也提供直接從關機狀態開機到 fastboot 或 recovery 的方式, 以 atom 來說,可以按著音量向上與電源鍵開機, (到 unihertz 字樣出現就能放掉了。) 就能進入 recovery 模式。 如果是重新開機,就是在螢幕黑掉後開始按著音量向上。

這模式一開始會只出現一個躺在地上胸口打開 有一個三角驚嘆號的 android,顯示一行沒有指令。 你需要同時按著音量向上與電源鍵剛好三秒, (這步驟要多試幾次,時間不好抓。) 然後先放開音量鍵,再放開電源鍵,就能看到選單了。 只是這是 recovery,不是 fastboot, 可以用音量鍵上下移動,用電源鍵選取, 有一個 reboot to bootloader 才是開機到 bootloader 的選項。

atom 好像沒辦法直接開機到 fastboot, 只能經由 recovery,所以 recovery 刷壞也不能靠 fastboot 救。 另一個音量下向鍵則是開機到 factory mode, 裡面有一些簡單的測試,但和刷機無關。 最後提醒一下,沒事不要按著電源鍵太久, 按超過五秒,(多久不確定,但有點久。)會強制關機。 我一開始以為顯示 recovery 選單是要按超過 3 秒, 就一直按著向上和電源鍵,按到強制關機好幾次 才發現不對,才發現是要 剛好三秒

透過 vnc 控制投影片

要讓電腦接受作為像滑鼠、鍵盤的輸入裝置,除了最簡單的藍牙裝置、usb 外, 多需要在電腦上預先安裝軟體接受來自手機的訊號,無論是透過藍牙或網路。 比起為了一個 app 自幹 client 與 server, 較簡單的作法是重用既有的架構,例如 x window 或 vnc。 雖然 vnc 是用來遠端操作整台電腦畫面的, 但也能傳送滑鼠移動或按鍵,所以能視作多了畫面功能的遠端裝置。

目前有二款試用過的,一是走 vnc 的 Remote mouse , 一是走 ssh 和 x window 的 XMouse Remote Mouse & Keyboard

Remote mouse 是走 vnc 的,要在電腦裝 vnc server。 windows 下可以用 tiger vnc,linux 可以用 x11vnc。 用來放投影片是沒什麼問題, 用音量鍵能模擬捲動翻頁,滑動螢幕就會移動游標。 預設好像會自己搜尋區網內的 vnc port。 感覺這 app 蠻實用的,如果有實際用到的話, 可能會贊助一下吧。

另一款是 XMouse Remote Mouse & Keyboard , 就是走 ssh 然後用 xdotool 命令來發送按鍵與移動滑鼠。 所以電腦要有裝這二個軟體。 debian ubunti 系就 apt install xdotool ssh 。 但因為是用 xdotool 控制, 在移動游標的連續動作時會有點頓。

因為 xdotool 只有 linux 下能用,而且他會頓, 目前是用 remote mouse。 雖然一般 windows 也沒有 vnc server 就是了。