Posts match “ android ” tag:

2015-02-05 Update: 2.21.40.44 之後的版本都無法使用這個方法。

2014-10-06 Update: 更新 v2 版本,分開 CHT, TW, WW 版的 recovery。另外之前命名錯誤,其實 CHT 是指中文訊息,EN 指的是英文訊息,但裡面的 recovery 都為 TW。

先前有提到可以打包在 PC 上跑的程式對 ZenFone 5/6 KitKat 版本 (TW) 進行 root,這幾天花了點時間打包好了,在這邊搭配一些簡單的說明希望可以幫助到不太會操作 adb 與 fastboot 的朋友。

Continue Reading →

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

2015-02-05 Update: 2.21.40.44 之後的版本都無法使用這個方法。

主站:http://goo.gl/t61tfm (ASUS Webstorage)
分流:https://www.mediafire.com/folder/ueq2l8b27tgn6//RootZenFoneKitKat (MediaFire)

主要改善一些情形:

  1. ZenFone 5 的版本拆成三份程式 (WW/TW/CHT),可以依照自己手機的版本下載對應的工具包。
  2. ZenFone 6 的版本拆成兩份程式 (WW/TW),可以依照自己手機的版本下載對應的工具包。
  3. 腳本檔案最開頭有個 set SkipUpdateBootloader=YES,如果在過程中碰到 FAILED (remote: not allowed to update unsigned image on secure device),請把 YES 改成 NO 之後再試試看。程式會自動更新裝置上的 bootloader,讓他有機會可以進行解鎖。
  4. 修正 OTA 更新後第一次開機時沒有 ROOT 的狀況。

詳細使用說明請參考原文:Simple ROOT program for rooting ZenFone 5/6 KitKat

Change log:

  1. Split into 3 versions (WW/TW/CHT) use exact version or you may fail to apply future OTA update. (v1 only supports TW version) For those used v1 before, just run again to update correct recovery.
  2. For those encounter FAILED (remote: not allowed to update unsigned image on secure device), change set SkipUpdateBootloader=YES to set SkipUpdateBootloader=NO in the script and do it again. This will update your bootloader that supports unlocking.
  3. Fix error getting ROOT permission after OTA update.

最後感謝那些捐款的朋友,你們的心意我收到了,真的很感動也很感謝 :) 小弟會持續努力讓 ZenFone 可以輕鬆 ROOT,下一步就是製作 AOSP ROM 了!

目前的計畫大概會是這樣,時間就看造化了:

  1. 持續改進 RootZenFoneKitKat,下次 OTA 為觀察重點,期望能順利升級並且自動保留 ROOT。
  2. 持續找尋新的方式讓 RootZenFone 可以繼續使用 (先集中火力在 ZenFone 系列)。
  3. 改善 TWRP / Philz-CWM Recovery 的 lag 狀態以及一些小 bug。
  4. 製作 AOSP ROM for ZenFone,不過老實說這需要大量的時間透過 try & error 的方式不斷調整,雖然目前有不少資料可以參考:https://github.com/gpdroid, https://github.com/lenovo-k900 但有人可以加入的話也許能讓這件事更快發生 ;-)

最新一版的 FOTA 會將平板升級到 Android 5.0.1 (版號顯示為:TW_epad-user 5.0.1 LRX22C TW_epad-12.14.1.9-20150327 release-keys) 有幾點要注意:

  1. 5.x 的 root 方式與 4.x 不同,如果直接 OTA 升級理論上 root 會消失。
  2. 華碩這次做更絕,除了 fastboot 將 flash 與大部分 oem command 封鎖、依舊無法刷入 recovery 以外,升級過後的平板無法降版 (把 ROM 更名為 MOFD_SDUPDATE.zip 放在 SD 卡進入 recovery 降版本的方法失效,程式會檢查 zip 內的 Android 版本)

與 ZenFone 2 的 5.0 相比,少了幾個功能:

  • 佈景主題
  • ZenMotion
  • 自動啟動管理
  • 兒童模式
  • 相片拼貼
  • 遊戲中心

目前還沒時間找新的 root 方式,所以已經 root 的朋友更新前請三思,至於已經更新的.. 等等看吧。

手機解鎖後刷自製的 recovery,除了可以隨意的 root、升降版本,更重要的是可以打包優化過後的 ROM 刷進去。比如說我想要降版到 1.17.40.16,去官網抓回 ROM 後解開,修改 META-INF/com/google/android/updater-script,把幾行 assert 的訊息拿掉:

assert(!less_than_int(15014039, getprop("ro.build.date.utc")) || greater_than_int(getprop("ro.build.date.utc"), 1392739200));
assert(getprop("ro.build.asus.sku") == "TW");

還有 recovery 目錄與相關的設定也移除,因為想保留自製的 recovery:

package_extract_dir("recovery", "/system");
set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");

一切就緒後將整包目錄壓回原來的 zip 檔案,開機進入 recovery 透過 adb sideload 刷入,重開機確認成功降版,一切看似美好,直到重新進入 recovery..

Continue Reading →

PadFone S 是華碩即將在台灣上市的 LTE 平板手機,會提到台灣是因為它在國外已經開賣,型號為 PadFone X,合約價 199 美金,單機 + 平板為 549 美金,如果沒看錯的話這價格相當殺。小弟有機會拿到實機把玩,在這邊跟大家分享玩機心得 :)

簡單的規格表如下:

  • Qualcomm S800 2.3GHz 的 CPU
  • 2GB RAM 與 16GB ROM,MicroSD 最大支援 64GB
  • 手機螢幕 5 吋 1080p (1920x1080) 平板 9 吋 1920x1200
  • 手機內建電池 2300mAh, 平板內建電池為 4990mAh
  • 1300 萬相機與 200 萬視訊鏡頭
  • 4G LTE 全頻, 台灣所有的電信商系統皆可使用
  • NFC / Qi 無線充電
  • IPX2 防潑水, 防150cm摔落鋼板設計 (手機本體)
  • Micro SIM 卡
Continue Reading →

前幾個星期趁著 1111 特價買了一台 Surface Pro 4 (最低階的) 一部分原因是想要在 Windows 平台上測試一些刷機工具,果然就讓我碰到惡名昭彰的 adb sideload 時出現 cannot read 的問題,稍微花了點時間研究一下,最後追到死在 malloc 那邊。

Continue Reading →

網路上已經有 4.4.2 (XNPH25R) 升級到 4.4.4 (XNPH30O) 的 OTA update package,只是某些人 (如我) 抓回來想要升級,卻發現一堆檔案 checksum error,這是怎麼一回事呢?

原來我的 OnePlus One 上面裝的 XNPH25R 是官網上沒有列出來的版本 cm-11.0-XNPH25R-bacon-signed.zip(不想 unlock bootloader)而這個檔案其實與 cm-11.0-XNPH25R-bacon-signed-fastboot.zip 的內容不一樣,前者的 ro.build.version.incremental 為 ee8b63c489,而後者的是 d22b777afa,以至於無法套用目前流出的 OTA update package。

所以如果想早點升級到 XNPH30O 該怎麼做呢?

That's it :)

2014-06-18 Update:
這幾天翻了 Google & XDA 找到這篇: Fix for empty app-mounted directories (CifsManager, etc.) in Android 4.2 簡單的說就是 Android 4.2 的 sandbox 讓 process 有各自獨立的檔案系統 view,所以就算你的 app 透過 root 掛載檔案系統,也只有該 app 可以看見檔案。唯一的解法就是讓 Android 啟用的 service 去做掛載這件事情:debuggerd 就被利用了。

可惡,原來 StickMount 會造成 OTA 更新失敗,他更改了 /system/bin/debuggered (不知道為什麼)。明明很簡單的 mount / mkdir 指令,居然可以搞這麼複雜..

看來還是需要自己寫 app..

今天 ZenFone 5/6 更新到 4.4.2,雖然已經 root 的機器升級後 root 還在,但已經確認華碩在 4.4.2 的升級修補了 RootZenFone 所使用的漏洞。

log 在此:

W/BroadcastQueue(  574): Permission Denial: broadcasting Intent { act=asus.intent.action.INSTALL_DEMOAPK flg=0x10 } from com.asus.LogTool (pid=3038, uid=10136) requires asus.permission.CALL_DEMOAPP due to receiver com.asus.livedemoservice/.receiver.LiveDemoReceiver

目前暫時沒有時間開發新的 root 程式,如果你用過 RootZenFone 這支 app 覺得對你幫助很大,也希望我能繼續開發新的 root 程式,可以透過 Paypal 贊助研發經費。 :)

2016-04-02 Updated: Genymotion 新版 (2.6.0) 的 image 已經不需要額外的 patch 囉,只要把 zip 檔案丟進去,重開機後自動偵測啟用 ARM Translation。

新的 zip 檔案在這:https://mega.nz/#!Mt8kyBxa!iVJYC7eI7ruLVoaarWIa85QOm_VlH53G0knVGpoSlAE

使用的步驟很簡單:
- 在 Genymotion 裡面建立 5.0 or 5.1 的模擬器。
- 開機後把 ARM_Translation_Lollipop_20160402.zip 拖到模擬器視窗中,讓他自動安裝。
- 完成後重開模擬器即可。

Steps:
- Create 5.0 or 5.1 emulator in Genymotion
- Drag the file "ARM_Translation_Lollipop_20160402.zip" into emulator to install the package
- Restart emulator and enjoy ! :)

---------------------------------------------------------------------------------------------<

Continue Reading →

電腦透過 USB 連接線使用手機的網路上網稱 USB Tethering,而反過來手機透過 USB 連接線使用 PC 的網路上網,稱作 Reverse USB Tethering。前幾天在論壇上面看到有人提出 ZenFone 能否使用 Reverse USB Tethering 的問題,覺得頗有意思,研究了一個晚上總算整理出一套流程,我所使用的手機是 ZenFone 5,版本為 Android 4.3。

Continue Reading →

年初買的 Remix Mini 在 root 完沒幾天後就被我搞掛了,而且很不幸的是寫信問原廠有沒有 Stock ROM 或者 factory image 可以讓我還原,結果跟我說不提供這種東西,當下只覺得 WTF ..

不過就在最近! 官方終於釋出相關檔案與步驟: How to flash Remix OS img file onto Remix Mini 馬上拿出塵封已久的機器,並且下載相關的檔案準備回魂我的 Remix Mini。其實步驟很簡單:

1. 安裝 [PhoenixSuit](https://www.dropbox.com/s/x7mnzui95c4459z/PhoenixSuit_EN_V1.0.8.msi?dl=0) 與下載 Factory Image [factory_image_rm1g_B2016110301-secure.img](https://osdn.net/projects/remixos/downloads/66607/factory_image_rm1g_B2016110301-secure.img/)
2. 開啟 PhoenixSuit 選擇 factory image
3. 把 Remix mini 開到刷機模式,我是按著 reset 後插入電源開機,程式會自動偵測到裝置並且開始刷入檔案

呃,不過我一直卡在刷到 54% 左右就跟我說錯誤的狀況.. 心想該不會我的 Remix Mini 已經嚴重到連刷機模式都無法救回了嗎?不死搜尋一下網路,最後在 http://linux-sunxi.org 找到 LiveSuit 的 Mac 版本,同樣的步驟居然可以成功刷入 ! 看來應該是驅動有問題,不過既然機器救回來了有空再找找看吧。過幾天有空再來試試看 root & xposed 有沒有辦法刷入.. :)

有人覺得 ZenFone 的實體按鈕沒有背光不方便,這邊提供一個顯示 Navigation Bar 的方法,只是有點擠..

mount -o rw,remount /system
echo qemu.hw.mainkeys=0 > /system/default.prop
chmod 644 /system/default.prop

重開機之後可以看到

4.3 (?) 因為某次 exploit 之後,對 property 的管制變嚴了,導致 /data/local.prop 無法設定某些值,還好 /system/default.prop 仍然可用,在不修改 /system/build.prop 的前提下,可以把一些設定塞到這邊。

Reference: https://android.googlesource.com/platform/frameworks/base/+/master/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

主站:http://goo.gl/olajfi
備份:http://goo.gl/S7zTFM

ZenFone 4 跟 ZenFone 5/6 系統有點不太一樣,recovery 不提供 UI 操作,所以也無法 sideload OTA 更新包進去,只能透過最傳統的方式:將檔案放置在 /sdcard 目錄下讓系統自動更新。 (比如 WW 版就是把檔案更名為 UL-ASUS_T00I-WW-99.0.0.0-user.zip 之類的,透過 windows 丟進內部儲存空間後,拔開 usb 線應該就會有更新提示)

Continue Reading →

這次就不包懶人 app 了,需要 root,主要的邏輯在 enabler.sh,基本上沒啥傷害 (?)

  • 先抓 sqlite3 binary for Android
  • 再抓從電腦執行的前導程式 go.bat,裡面只有 adb command 而已。
  • 最後是主要啟用的腳本檔 enabler.sh,裡面做的事情很簡單:修改 Play Service 的 database 開啟使用 Chromecast Screen Mirroring 的旗標。

所以東西都抓下來後,執行 go.bat 就好了。聽說有些 Samsung 的機器不能跑,不過我手上也就這麼多台手機,有 Chromecast 但手上的裝置不再官方支援列表的就自行參考看看吧。

分享一下個人打包給 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 早期的版本有支援模擬 (硬體) 的 SD 卡,但後面的版本不知道為什麼拿掉了這功能,但你依舊可以在 deployed 目錄下找到 android_sdcard_disk.vmdk or sdcard.vdi 這兩個殘留的檔案。

於是花了點時間做了這個 patch:https://github.com/shakalaca/GenymotionSDCardEnabler 目前只支援 Android 5.x,4.3 & 4.4 不知道為什麼 vold 一直偵測不到裝置。目前只在 Mac 上測試過,記得要先安裝 Apktool 重新打包 framework-res.apk,讓 Android 那邊可以看到多出來的裝置。安裝方式很簡單,先開啟模擬器,然後執行 install.sh 進行修補,接著重新啟動模擬器即可。

  • 一個模擬器執行一次 install.sh,如果有重新執行的必要,請建立新的模擬器。(因為沒有防呆機制)
  • 其實也可以讓 emulated storage 與 real sdcard 並存,需要的朋友可以將 assets/extras 的檔案拉回 assets 後執行 install.sh 即可。
  • 如果覺得不想要用模擬的 SD 卡而是用 USB 隨身碟 (可以測試熱插拔)
    • 將 assets/fstab.vbox86.patch 裡面的 */block/sdc* 改為 */block/sdd*
    • 關閉 Genymotion,開啟 VirtualBox。
    • 修改對應的模擬器設定,找到 port -> USB,此時插入你想要用的隨身碟,接著點選右邊第二個 icon (有 + 符號) 將你的隨身碟名稱加入,儲存設定 (按 OK)。
    • 關閉 VirtualBox,重新啟動 Genymotion (記得先拔除隨身碟)。
    • 模擬器啟動完成後,插入隨身碟就可以當外接 SD 卡使用啦。 :)

先講無聊的部份:

  1. Intel Z3560/Z3580 的 CPU, boot.img/fastboot.img/recovery.img 的 HEAD_PADDING 後面的 UNKNOWN_SIZE728 bytes,而 BOOTSTUBSTACK_SIZE 也是 8192 bytes。
  2. RootZenFone 修改一下即可使用,晚點再發佈小更新。
  3. recovery 裡面的 sideload 是壞的,adb port 根本無法打開,拿到時有做一次軟體更新還是沒修復,猜想應該不想讓人使用吧?fastboot 裡有 SD Download,看來日後的 factory image 會是 .raw 格式。

比較有趣的部份:

fastboot 有個小後門,可以拿來做 root 的應用:

Continue Reading →

之前發在 Mobile01,轉回來做個記錄..

不少網友 OTA 更新失敗都是因為 Root 後就把系統檔案修改或者刪除,這邊提供一個標準還原流程。(因為已經被問到爛了)

  • 下載符合手機版本的原廠 ROM
    ZenFone 5 請到這邊找 http://www.asus.com/tw/Phones/ASUS_ZenFone_5/HelpDesk/
    ZenFone 6 請到這邊找 http://www.asus.com/tw/Phones/ASUS_ZenFone_6/HelpDesk/
    從 驅動程式及工具程式 進去, 選 Android 就可以看到一堆列表.

  • 解開下載的檔案,會得到格式如下的壓縮檔:

    UL-ASUS_T00?-$$-#.##.##.#-user.zip
    

    如果手機是 ZenFone 5,? 為 F 或 J;如果手機是 ZenFone 6,? 為 G。
    $$ 代表區域,可能是 TW (台灣版),CHT (中華客製版),CN (中國版)或 WW (全球版),注意要跟手機的版本一樣。
    而 #.##.##.# 為版號,也要跟手機的版本一致。

  • 把剛剛下載回來的檔案,版號的部分 (#.##.##.#) 改為 10000,所以會產生類似 UL-ASUS_T00F-TW-10000-user.zip 這樣的檔案名稱。

  • 手機透過 usb 傳輸線連接到電腦,在檔案總管可以找到 ZenFone 的內部儲存空間,把檔案丟進去。

  • 傳輸完畢,先 unroot。

  • 拔開傳輸線以後,會出現升級提示,確認手機電力充足,按確定即可重置作業系統,這個動作不會清除手機資料。

  • 還原完畢,root 後等 OTA 更新出來,按保留 root 接著套用更新。如果安裝新版的 Root ZenFone 直接啟用 OTA 生存模式,再套用更新即可。

然後再一次呼籲,root 後不喜歡的內建軟體可以停用,但不要刪除否則 OTA 更新一定會失敗。至於什麼 Lucky patcher 會改到 framework 的鬼東東,除非你意識清楚否則 OTA 更新一定會失敗