碰到幾個外國人寫信詢問如何捐款贊助,有點感動,不過一直沒有空去弄 paypal 帳號,這幾天剛好老婆工作上需要設定了一組,就順便弄了贊助連結囉。 :)

如果您覺得我的文章或者程式有幫助到你,歡迎捐款贊助,金額不限,心意最重要。

If you find my applications useful or like my blog, you are welcome to support future development via donation:
==> Donate to shakalaca for his work <==

Systemless root 是個蠻有趣的概念,在 Android 4.x 以前的時代 root 手機不外乎就是在 /system 下塞 su 與管理 app,到了 5.x 之後引入了 daemon 並且繞接 app_process 取得權限,之後加入的檔案越來越多 (比如 supolicy)。不過在 Android 6.0 強制 Block-Based OTA 之後,在 /system 植入 root 似乎不是一個很好的 idea,於是有了 systemless root 的出現,藉由修改 boot.img 的方式搭配 mount 指令與調整 SELinux 的 policy 達到 root 手機的目的,而收到 OTA 升級通知後,也只要刷回 boot.img 與 recovery.img (optional) 即可無痛升級,之後再進入 twrp 把 root 刷回來即可。

Continue Reading →

基本上算是 ZenFone 專屬的工具,當初會想做這工具不外乎有些程式會偵測手機是否有 root (比如某支付啊,某可夢啊) 試過目前可以找到的隱藏 root 程式都有各自的優缺點 (純粹個人喜好就不列出來比較了) 而且在我自己做的『預先 root system.img』與『精簡版』都有些小狀況,所以決定自己跳下來看看這水有多深 XD

檔案下載

1.0.3 https://mega.nz/#!owUGFJKS!YfaEL3zXrZVPlGol62HFGp9gzPyNiwCc6f0g4lJAZxc

主要支援機種

ZenFone 2 Laser (ZE500KL / ZE550KL / ZE601KL)
ZenFone Selfie (ZD551KL)
ZenFone ZOOM (ZX551ML)
ZenFone 2 (ZE551ML / ZE550ML)
ZenFone 5 (A500CG)
ZenFone 6 (A600CG)

使用前的注意事項

1. 請熟悉 fastboot / adb 的使用,知道如何回復原廠 ROM,萬一服用後無法開機,請自行刷回原廠 ROM 還原。
2. 目前只針對 SuperSU 設計,其他的沒測試過。
3. 支援 Android 5.0,關閉 root 後重新開機會自動還原 root。如果你的手機不在列表裡面,原則上還是可以使用,但切記 重開機前一定要打開 root,不然就永久 unroot 了。
4. 理論上支援 Android 6.0,不過如果是 systemless root 可能還有些小問題需要長時間測試。

原理解說

  • 以 Android 5.0 來說,主要針對 su 與 daemonsu 這兩個檔案更名,但因為 root 時將 /system/bin/app_process 連結到 /system/xbin/daemonsu,更名會讓系統無法正常運行 (小狀況,比如無法安裝新 app..),所以保險的作法是連結回原本的 app_process{32,64},可是這麼做重開機後 root 便會消失,得花額外的精力重新 root。幸好之前研究 ZenFone 系列 root 實作過 OTA survival 功能,於是借用相關檔案重建連結 (還原 root),這也就是為什麼只有 ZenFone 系列手機不需要在重開機前打開 root。以 x86 系列來說是 /system/bin/ct_monitor,而 arm64 系列來說就是 /system/bin/qrngd,只要先設定好 SELinux policy 即可掛載 /system 還原相關檔案。

  • Android 6.0 除了前面的步驟外,還多了 /system/bin/.ext/.su,而且 SELinux 必須為 Enforcing (某些 root app 會自動設定 SELinux 為 Permissive)

  • 最後要處理 systemless root,相關檔案都放在 /su,實際上是 /data/su.img 的掛載。更名不是太大的問題,問題在於如果要在重新開機時還原,一定得修改 boot.img,但身為奶爸哪來這麼多美國時間處理一海票的 case 呢?所以最簡單的處理方式就是:將 /data/su.img 複製一份,並且將現在使用的 su.img 改名,如此一來重開機時就會自動掛載沒有修改過的 su.img,照常使用 root 權限,唯一的缺點就是要花 96MB 的空間儲存額外的 su.img (還好空間還算便宜啦)。不過這種修改方式可能會產生一些小問題,日後會持續改善。

源碼呢?

因為主體是 script 所以我就把相關檔案丟到 gist 上啦,有興趣的可以參考參考,至於 android app 基本上.. 就只是個載體,不重要啦。:P

我有其他問題!

歡迎來 ZenTalk 討論,也許其他 Zen 粉有與你相同的問題或想法 :)
https://www.asus.com/zentalk/tw/thread-173542-1-1.html

分享一下個人打包給 Genymotion 使用的工具軟體,方便開發者或玩家從 Play Store 下載 apps or games,包括:

  • ARM Translation (5.x & 6.x)
  • Google Apps (5.0, 5.1, 6.0) 裡面的檔案主要是設定 Google Account 與 Play Store,打包自 Open GApps Project pico 版。
  • SuperSU 2.65 版

直接丟入模擬器的視窗,依照指示按 OK 鈕,重開即可使用。

檔案在這:https://mega.nz/#F!JhcFwKpC!yfhfeUzvIZoSdBgfdZ9Ygg

目前 Genymotion (2.6.0) 上面老早可以使用 Android 6.0 的 image,而根據網友的回報現在要跑 ARM Translation 比以前簡單多了,無需修補 ramdisk,把需要的檔案丟入虛擬機器後重新開機,內建的 /system/etc/init.androVM.sh 腳本檔便會自動啟用 ARM Translation 環境。

檔案在這:https://mega.nz/#!p4lFlCZR!TFsb8dMqNdAJjKoCDPDDvNtcQdEB0-KkVlTgQVwG20s
主要檔案來自 http://dl.android-x86.org/houdini.php?v=6_x

使用步驟:

  • 在 Genymotion 裡面建立 Android 6.0 的模擬器。
  • 開機後把 ARM_Translation_Marshmallow.zip 拖到模擬器視窗中,讓他自動安裝。
  • 完成後重開模擬器即可。

最近使用 Genymotion 時,透過拖放的方式刷 zip 進去都會出現這樣的錯誤訊息,明明很久沒更新版本 (2.6.0) 怎麼突然就出問題了?後來想到 Android SDK tools 有更新,於是去 Genymotion Player 的 Settings 裡面,在 ADB 分頁中使用 “Use Genymotion Android tools (default)”,重新啟動 player 後就可以順利丟入 zip 檔案囉。

[Xposed] Patched 2.7–experimental1 Installer 主要是最近 ASUS 更新了 ZenFone 一代 4.4.2 的 ROM,加入了類似這樣的 patch,導致升級後安裝 XposedFramework 手機無法正常開機 (軟磚)。

解法不難,拉出 v58 的 Xposed 再針對 AndroidRuntime::start 的呼叫做些修改,即可編譯出相容新舊版 Android (4.4 以下) 的 Xposed,翻了下 google 似乎沒人處理 x86 這塊,所以花了點時間編譯新版讓有需要的朋友使用。

請由此下載:https://mega.nz/#!09VTmSJT!BtLBJl5t14yxIx6cMSOP_bc6ygV7qQTV3tLfcpMglZk

感謝 rovo89 與其他貢獻者無私的付出,才有這麼棒的 framework 可用。 :)

IntelAndroid-FBRL 是一款可以在 Intel Android 裝置上不用解鎖也可以運行 CWM / TWRP 的軟體,在 ZenFone 一代上皆可正常運行而且 adb shell 進去就有 root 權限,相當方便的小工具。唯一的遺憾就是 ZenFone 2 上 adb shell 是真的 shell 權限,無法瀏覽 /data 的資料,用起來綁手綁腳。

由於沒有 source code,我只好修改 adbd 最顯而易見的地方讓他總是以 root 模式運行,另外打包一份給需要的朋友下載使用。

修改過的 IntelAndroid-FBRL

Credits to social-design-concepts & vampirefo & many others list on OP,I only patched the adbd inside the TWRP zip.

DuOS 是一款(只能)在 Windows 平台運行的 Android 模擬器,使用 Xposed 官版 (for x86) 會 bootloop,翻了下 log 覺得他們家應該是用 android-ia 的版本 (或者有加入 patch 但剛好跟 android-ia 的類似) 所以乾脆自行編譯一版基於 android-ia 的 art 加上 Xposed 修補的版本使用。

下載:Xposed for DuOS v80

使用方式:

  • 進入 DuOS 開啟「開發人員選項」(設定 -> 關於 -> 版本 -> 狂點)。
  • 進入開發人員選項開啟 USB 偵錯。
  • 開啟 root mode (DuOS configuration Tool -> Advanced -> Root Mode) 記得重開模擬器。

  • 解壓縮上面的 zip 檔案,點選 InstallXposedFramework,完成後模擬器自動重開,接著再點 InstallXposedInstaller 即可。

其實這台 Remix Mini 已經到家一陣子了,只是一直沒時間好好把玩把玩,趁著選舉日有點空閒,接上鍵盤滑鼠螢幕體驗一下多重視窗的 Android 系統。當然身為 root 愛好者不會放過這個機會,上網搜尋一下沒找到方便的方式,有人說降版本可以用 towelroot,不過翻了半天官網就是沒找著 stock ROM,一怒之下開始找可能的突破口。XD

Continue Reading →