2017年2月3日 星期五

升級佳域 JY-S3 (MT6752) 手機韌體至 Android 7.1 (M.A.D.)

這是一年半前買的手機

售七張多小朋友, 高規版, 配 3G 記憶體和 NFC, sensor 該有的都有, bt/wifi/gps
多一顆電池, 充電器, 行動電源, 連接線, 皮套, 保護貼, 贈品堆的像小山XD
聯發科方案就是讚XD

這手機讓我最印象深刻的是天線

左邊是舊的聯發科方案手機, 天線是用貼的, 右邊是 JY-S3, 天線是用 "塗的"
這是我手邊功能最完整的一隻手機, 不過用了以後發現...我好像不需要 NFC...
另外, 這貨韌體有些 bug, 平常使用沒問題, 但有些時候
目前遇到比較多的情況是溫度差異太大時, 喚醒會當機
出現的次數不多, 所以我還是繼續用
後來看到有人做了韌體, 就想升看看, 升之前先買一隻新的XD

紅米 Note 4, 一樣是聯發科方案
全金屬外殼, 把蘋果和 HTC 的風格攪在一起, 不錯, 這我看了順眼XD


邊緣加工雖然是亮的, 但仔細看箭頭處, 在某個方向還是可以看到和箭頭一樣方向的線
CNC 加工一步一步走留下的痕跡, 玩過機械加工就喜歡看這個! 扯遠了XD
有了另一隻手機, 這隻 S3 就可以任意惡搞而不怕玩壞

這隻手機能刷的韌體很多, 不過有個分界線
Android 4.4 : 32-bit 系統
Android 5.0 以後 : 64-bit 系統
若是使用 OTA 更新, 4.4 只能刷 4.4 的韌體
5.0 以後的只能刷 5.0 以後的韌體
若要從 4.4 跳到 5.0 以後, 或是 5.0 以後的要還原回 4.4
只能用 USB 刷, 用 Smart Phone Flash Tool
這軟體應該是研究了聯發科的工廠生產工具後寫出來的

這是佳域官方線刷包裡附的, 可以同時刷好幾台機器的樣子, 讚!
不過這不太好用, 這是工廠用的, 固定功能
用別人做的 Smart Phone Flash Tool 會比較方便

這工具可以換掉原先韌體包指定的檔案
也可以只刷特定分割區, 整個更新流程如下:

1. 執行 Smart Phone Flash Tool, 指定線刷包的 scatter 檔案
2. 按下 Download 按鈕, 然後才把已經關機的手機接上電腦
3. 若正常就會開始刷機, 完成後會看到上面那張圖 OK 訊息
4. 開機看看這包韌體是否正確, 若正確, 再把手機關機
5. 替換 Smart Phone Flash Tool 中 recovery 那欄的檔案
   把 recovery 換成 TWRP-recovery, 並且只勾選這欄, 其他欄位前面的勾都取消
6. 按下 Download 按鈕, 把已經關機的手機接上電腦
7. 若正常就會開始更新 recovery 分割區, 等它完成
8. 完成後移除 USB 線, 按住手機音量+按鈕再按手機電源鈕開機
9. 正常會有選單可以進 recovery, 選取後進入
10. 若正常應該可以看到第三方做的超便利 OTA 更新工具
11. USB 線接上, 電腦上應該可以看到 MTP 設備
12. 把要升級的韌體複製進去, 可以放在 SD 卡或是內部儲存空間
13. 安裝這包韌體, 完成後 wipe data 和 cache, 然後重開機, 完工

通常照著做不會成功XD
因為檔案版本分散在各處, 用途也多不同
原作者可能會有說明, 但經過一再轉發, 訊息就不見了
就算找到作者, 他也懶得把訊息重複貼, 所以還是不知道怎麼用
只好依據我玩過 android 的經驗下去嘗試
不過這是我第一次刷手機的 android, 以前都是搞開發板, 手機的相對比較難
開發板有 console, 我可以知道發生什麼事, 但手機沒有
它死了我也不知道哪裡錯, 加上沒玩過他們家方案, 花了不少時間
經過一些嘗試才找到路把它做完

上圖工具裡多個欄位就是手機內的儲存空間分割區
用定死的記憶體位址去切, NAND Flash 時代這很正常
可是我這隻配的是 eMMC, 裝置節點也是 mmcblk, 不知道為什麼這樣搞
Smart Phone Flash Tool 使用需要先裝驅動
但什麼樣的驅動才有效並不清楚, 我用的是 Driver_Auto_Installer_v1.1352.00.rar
這工具有 Linux 版, 裝在 ubuntu 上可以認到但刷不進去
我把找到的驅動裝了以後在公司的 Win7 64-bit 機器上完全沒反應
只有我手邊極少用的 Win7 32-bit Atom 破機器認到且可以刷
這包驅動裡有附 32 和 64-bit 的軟體但不知道為什麼只有 32-bit 會動
這手機在一開機, 進系統後, 停在 fastboot 等狀態時會變成不同的 USB device
VID/PID 不同, 需要的驅動也都不相同

接著刷官方韌體
官方 4.4 線刷版, 要還原到最初出廠狀態就用這包:
s3s-20150813-105957.zip
這包可搭配 TWRP-recovery-2.8.4.0.img 使用

官方 5.1 中國大陸內專用封鎖 Google 包:
Home »JIAYU »S3 »OFFICIAL Jiayu S3 Android 5.1 ROM
要升級 CyanogenMod 或 M.A.D. (Mediatek Android Developers) 必須先刷這版
這包可搭配 TWRP-recovery-3.0.2.3.img 使用

錯誤的 TWRP-recovery 版本沒法開機, 版本正確了但刷錯誤版本韌體也不開機
4.4 只能刷 4.4 的韌體, 5.0 以後的只能刷 5.0 以後的韌體
有些教學寫先把手機 root 以後再把 TWRP-recovery 放進去, 別隻手機可能行
在 S3 這隻手機是沒有意義的, 因為要升 5.0 以後的版本, 必須線刷!
而戰鬥民族改的韌體之所以會基於大陸封鎖的 5.1 版我想可能是貨源因素
以後會怎樣不知道, 至少前幾年中俄關係不錯
像去年 520 以後我的掏寶帳戶就廢了, 帳戶在但錢進不去, 金額凍結, 自然啥也甭買了
(後來找到了, 支付寶可以綁 VISA, 只是一定要手機裝 APP, 桌上型電腦登入還是不認 VISA)
這讓我想起有人說戰鬥民族很好打交道的, 只要罵美國並且賣東西給他們即可XD

官方 5.1 刷完會長這樣:

通常我們不會想用這種系統的, 看完確認正確後馬上刷掉XD

線刷 5.1 還有別的選擇, 這是佳域德國開發的, 也算官方版
JiayuS3-5.1.1_jiayu.de_Beta7.rar
不過這只是 beta 版, 正式 release 都放在百度雲, 我抓不下來, 沒輒
另外, 我沒記錯的話這版沒法更新任何第三方韌體, 看看就好
刷完裝起來像這樣:


完成官方 5.1 刷機並更新 TWRP-recovery 以後接著是刷第三方韌體
按住音量+後按電源紐開機可以看到選單, 依指示即可進 recovery

第三方韌體都是 OTA 更新, 所以沒有做到 TWRP-recovery 這步通常是玩不下去的
S3 的第三方韌體我測過能用的有兩個, CyanogenMod 和 M.A.D.
更新前需參考這篇:
[FIX][SOLVED]Status 7 Error with CWM or TWRP Recovery on Rooted Android!
韌體解壓縮, 找到 META-INF/com/google/android/updater-script 這檔案
改成手機正確的代號然後壓縮回去, 以我的來說就是改:
getprop("ro.product.device") == "h560" || getprop("ro.product.device") == "H560"


CyanogenMod:
[ROM] [6.0.1] Unofficial Sandstrangers LineageOS/CyanogenMod13 - JiaYu S3 [MT6752]

不知道是不是開發人員跑光了, 它的更新速度不快, 而且有許多問題
我抓的當時 (2017.01) 感測器還缺陀螺儀 (應該是重力+磁力計算)
導致 VR App 都沒法用


M.A.D. 的更新速度就很快了, 而且功能完整, 但是我第一次刷沒有成功

一開機就出現 phone app 已經停止, 然後那 error 就一直卡住 UI
即使很快的按掉然後抓空檔想辦法進 Setting 把 app 停用也無效
然後我就抓了 M.A.D. 的原始碼下來編, 編譯後做出 OTA, 然後刷進去
刷完後只看到佳域的 Logo, 連 Android 開機動畫都沒看到
然後! 再把 M.A.D. 同一包韌體再刷進去, 就正常了, 這啥鬼??

M.A.D. 刷機看到這兩紅字 error 不用管它, 這樣有成功

M.A.D.:
[ROM] [ 7.0 | 7.1 | 7.1.1 ] Unofficial AOSP N - Jiayu S3 [MT6752]
目前我用的是 7.1, 最新的 7.1.1 刷進去不開機, 要退版本才行
7.1 和 7.1.1 韌體刷機時流程不同, 7.1 是整個 image 填進去
而 7.1.1 則是格式化以後解壓縮進去, 這如果在別家平台是沒差的
不知道為什麼這 TWRP-recovery 會有不同結果
我感覺有問題的還是那個用固定位址存取 eMMC, 這和別家很不相同

目前我用的:



如果沒插 SIM 當開發平台來使, 電會一直吃, 估計一天就沒了
所以就算 phone 沒有問題若沒插 SIM 還是要將它停用
上圖箭頭處就是停用的時間點, 耗電現象馬上停止
它可能沒看到 SIM 就會一直抓著 lock 一直 poll

CyanogenMod 和 M.A.D. 都有放出原始碼, 但是我覺得有問題
是 release 流程和我想像的不一樣嗎? 還是上面真的有缺東西
我的流程就是 clone AOSP, 然後 clone 他們的 git
檔案放到 device/jiayu/s3_h560, vendor/jiayu/s3_h560, kernel/jiayu/s3_h560
M.A.D. 的要多一個 vendor/mad, 然後 envsetup 後 lunch
CyanogenMod 的 git 複製出來的東西光是 vendorsetup.sh 就肯定是錯的
那樣根本沒法 lunch, M.A.D. 的就順利多了, 改動較少, 可以 lunch, 可以編過
但是不開機, 由於沒有任何除錯界面, adb 也沒起來, 我看不到任何訊息
只好用 TWRP-recovery 把 system 的資料全複製出來, 然後和我編的比
結果發現很多東西 git 上都沒有, 像是 Nfc, git 上沒有, mk 檔也沒寫
他們 release 出的韌體卻有?? 此時我的感想如下圖:



所以這台機器並沒有辦法任意修改, 只能當 app 開發平台
新的 Android 強制使用 SE Linux, 如果沒有原始碼很難加東西進去
加了也不會動, 不過我印象中第三方做的都是權限全給的, 不是很確定
有需要再試試

升級這包也不完全沒用, 4.4 官方包還有個通訊的 bug
那就是 wifi 和 bt 同時開時, wifi 會很慢, 7.1 測試後沒看到這問題
看來是有修掉了, 當機現象目前為止都沒看到
不知是誰修的, 是 MTK 修的, 還是 MTK 做給佳域然後發給 M.A.D. ?
這種問題不像第三方有能力修的, 反正我裝上去會動了, 就先這樣吧

沒有留言:

張貼留言