微剋多資訊

 找回密碼
 註冊

Sign in with google

Google帳號登入

搜索
回覆 11則 瀏覽 23640篇
Line

[密技教學] Super MID 修改方法

簽到天數: 189

該用戶今日未簽到

升級   100%

跳轉到指定樓層
主題
發表於 2015-1-31 15:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 gary8349 於 2015-1-31 23:46 編輯

本文修改自熊大的文章(出處),本人僅根據自己實作的想法稍作編排,若有錯誤請指正

小提醒:建議電腦要佈置好Java環境,以及HTC Sync ManagerLatest HTC Driver要裝好,手機亦請開啟 "USB偵錯"
【S-on】可以提取來做研究,【S-off】才可以做回存、修改

前言
何謂MID?在Images ROM裡會包含android-info.txt
於執行刷寫程序時進行驗證此三個項目:modelid、cidnum、mainver
  1. modelid:MID
  2. cidnum:CID
  3. mainver:手機版本號
複製代碼
不同地區的機子有著不一樣的CID這是大家所熟悉的,一般將手機S-OFF後都會將CID改為SuperCID:11111111
而不同地區的手機,其裝置型號(MID)也是不同
當你需要去刷入其他區的韌體、OTA或要刷國外的RUU時就需要去做修改

本文
HTC M8 台版 / 歐版 的MID為例
台版MID:0P6B11000
歐版MID:0P6B10000

假如你是台版機,但你要去收歐版的OTA或是刷入韌體
這時你就要把你的MID改成歐版:0P6B10000

而要收本地區的OTA或韌體時,你要把MID再次改回台版:0P6B11000
可是改來改去也是頗麻煩的...那有沒有方法一勞永逸呢?
有~!! 那就是把機子改成Super MID

Super MID修改方法為把最後4碼改為****
此例即為:0P6B1****
(註:此方式亦適用於其他機型)

MID修改
adb工具包:傳送門
文件編輯器(Hex Editor XVI32):官方載點
Hex Editor XVI32使用方法請見:3F

dd 提取方式:(請用指令查詢mmcblk0p,並將"?"改為數字代號)(詳情請見:2F
  1. adb shell
  2. dd if=/dev/block/mmcblk0p? of=/sdcard/mmcblk0p?
  3. exit
  4. adb pull /sdcard/mmcblk0p? mmcblk0p?
複製代碼
回存:(請用指令查詢mmcblk0p,並將"?"改為數字代號)(詳情請見:
2F
  1. adb push mmcblk0p? /sdcard/mmcblk0p?
  2. adb shell
  3. dd if=/sdcard/mmcblk0p? of=/dev/block/mmcblk0p?
  4. exit
複製代碼
Super MID修改語法(M8)
為啥以下語法是長這樣呢?若有興趣請用Hex Editor自行查看,或請移駕至本文 5F 了解詳情
要知所以然!
所以提取mmcblk0p,要懂得用編輯器察看內容...如此也才能真正瞭解相關帖子裡所附的指令是何用途及為什麼
熊大一句話點醒了我,以前有指令就用,不會去深究指令從何而來
現今操作過幾遍終於知道類似的指令怎麼來的了,也能稍作修改適應不同的機子了~~

台版:0P6B11000 --> 0P6B1****

(MID修改整串)
  1. adb shell
  2. echo -ne 'x30x00x50x00x36x00x42x00x31x00x2Ax00x2Ax00x2Ax00x2A' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16384
複製代碼
(後4碼MID修改)
  1. adb shell
  2. echo -ne 'x2Ax00x2Ax00x2Ax00x2A' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
歐版:0P6B10000 --> 0P6B1****
(MID修改整串)
  1. adb shell
  2. echo -ne 'x30x00x50x00x36x00x42x00x31x00x2Ax00x2Ax00x2Ax00x2A' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16384
複製代碼
說明:seek=16384 是 DEC區的位置(第1碼 "0" 的位置)

(MID只修改後4碼)
  1. adb shell
  2. echo -ne 'x2Ax00x2Ax00x2Ax00x2A' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
說明:seek=16394 是 後4碼第1碼 的位置

還原本區MID語法
台版:0P6B1**** --> 0P6B11000
(MID修改整串)
  1. adb shell
  2. echo -ne 'x30x00x50x00x36x00x42x00x31x00x31x00x30x00x30x00x30' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16384
複製代碼
(後4碼MID修改)
  1. adb shell
  2. echo -ne 'x31x00x30x00x30x00x30' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
歐版:0P6B1**** --> 0P6B10000
(MID修改整串)
  1. adb shell
  2. echo -ne 'x30x00x50x00x36x00x42x00x31x00x30x00x30x00x30x00x30' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16384
複製代碼
說明:seek=16384 是 DEC區的位置(第1碼 "0" 的位置)

(MID只修改後4碼)
  1. adb shell
  2. echo -ne 'x30x00x30x00x30x00x30' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
說明:seek=16394 是 後4碼第1碼 的位置

注意:
M8和之前機型的裝置數據分區不完全一樣
M8的MID在分區mmcblk0p5
M7的MID在分區mmcblk0p6
請先用指令查詢 partitionsemmc 再行操作。
若你不知道你的MID原來是多少的話,可以試試先自手機提取出來用編輯器開啟
Address --> Goto 搜尋 $400A 應可找到
註:分區修改錯誤有可能導致機子故障而需送修,請謹慎操作,本人不負相關責任或費用。

若你有興趣研究,那你可以提取所有分區再用Hex Editor去查看~~
以下3個分區可以不用提取:
  1. mmcblk0p0(內部儲存空間)
  2. userdata
  3. System
複製代碼
常用指令篇:詳情請見 4F
M8重新上鎖 / 解鎖:6F
M7重新上鎖 / 解鎖:7F



樓主熱門主題

簽到天數: 189

該用戶今日未簽到

升級   100%

2F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

查看 emmc / partitions 資訊

指令解釋
partitions:所有的 mmcblk0p
emmc可瞭解部分分區名稱
mmcblk0p有大部屬於 "裝置數據分區",一部份是 "韌體分區"
韌體分區:這部分區會因為OTA 升級(firmware.zip 緣故)或刷官方韌體而改變
裝置數據分區這部不會因為上述因素而改變,分區包含:CID、MID、ReLocked、Tampered、S-Off、Javacard號

指令運用
查看emmc
  1. adb shell
  2. cat proc/emmc
複製代碼
查看partitions
  1. adb shell
  2. cat proc/partitions
複製代碼

使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

3F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

Hex Editor XVI32 簡易使用說明

下載好Hex Editor XVI32後解壓縮到你要放置的位置
雙擊XVI32.exe開啟主程式
此次以修改MID為例,亦可提取其他分區進行研究,編輯器使用方法基本上是一樣的

Setup1:開啟要修改的檔案(以台版M8為例,提取mmcblk0p5)
Search 和 Address 是這次主要會用到的項目


Setup2:Search --> Find,鍵入關鍵字 0P6B11000


搜索到資料,如圖:

直接進行數據修改(於Dec 區域修改),完成後回存手機即可

(指令用)
先點選你要開始修改的數值位置
Address --> Display difference...,找出Dec位置
等於指令中的 "seek",圖中即:"seek=16394"


註:
假如你已經知道數值位置的話
可以直接用Address --> Goto... 搜尋
上圖中為:400A,故底下於 "$" 之後鍵入 "400A"





使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

4F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

常用指令篇

HTCDev 官方解鎖
=====================
提取序號碼
fastboot oem get_identifier_token

解鎖(藍字視檔名修改)
fastboot flash unlocktoken Unlock_code.bin

重新上鎖
fastboot oem lock

一般常用
=====================
Android超級終端
adb shell

裝置連結確認
adb devices

重啟至bootloader介面
adb reboot bootloader

重啟至recovery介面
adb reboot recovery

查詢CID
adb shell getprop ro.cid

查看裝置全部訊息参數
adb shell getprop

查看裝置的SN
adb shell getprop ro.serialno

查看裝置的CID
adb shell getprop ro.carrier

查看裝置機板代號
adb shell getprop ro.hardware

查看SPL(HBOOT)版本號
adb shell getprop ro.bootloader

查看RIL 版本號
adb shell getprop gsm.version.ril-impl

查看ext
adb shell
mount |grep ext

查看emmc
adb shell
cat proc/emmc

查看partitions
adb shell
cat proc/partitions

查看mounts
adb shell
cat proc/mounts

查看裝置的Kernel
adb shell uname -a

備份
adb backup [-system|-nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <filename>.ab
解釋:adb backup [-備份系統|-不備份系統] -all [-備份apk|-不備份apk] [-備份內存|-不備份內存] -f <備份檔名稱>.ab
範例:
adb backup –system –all –apk –share –f "D:\backup.ab"

還原
adb restore <filename>.ab

Fastboot環境
=====================
重啟
fastboot reboot

重啟至bootloader介面
fastboot reboot-bootloader

查詢cid
fastboot getvar cid

查詢cid
fastboot oem readcid

查詢裝置訊息
fastboot getvar all

寫入recovery.img
fastboot flash recovery recovery.img

寫入boot.img
fastboot flash boot boot.img

抹去cache
fastboot erase cache

抹去recovery
fastboot erase recovery

抹去boot
fastboot erase boot

抹去system
fastboot erase system

RUU模式
fastboot oem rebootRUU

刷入Firmware
fastboot flash zip firmware.zip

其他指令
=====================
RUU模式
adb reboot oem-78

刷入ROM(藍字視檔名修改)
fastboot flash zip rom.zip

修改CID為 HTC__621(藍字視檔名修改)
fastboot oem writecid HTC__621





使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

5F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

指令的由來

本篇將用以下2個指令來簡易說明指令和mmcblk0p的關係

改為Super MID(0P6B11000 --> 0P6B1****)
指令:
  1. adb shell
  2. echo -ne '\x2A\x00\x2A\x00\x2A\x00\x2A' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
mmcblk0p5內容:


還原MID(0P6B1**** --> 0P6B11000)
指令:
  1. adb shell
  2. echo -ne '\x31\x00\x30\x00\x30\x00\x30' | dd of=/dev/block/mmcblk0p5 bs=1 seek=16394
複製代碼
mmcblk0p5內容:


綜合解說
mmcblk0p5 表示分區5
seek=16394 表示 Dec 位置
"1000" = "\x31\x00\x30\x00\x30\x00\x30",表示欲修改的數據
x00 = 圖中Dec區的空格


使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

6F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

M8 重新上鎖 / 解鎖

手動操作提取方法
dd提取mmcblk0p2
  1. adb shell
  2. dd if=/dev/block/mmcblk0p2 of=/sdcard/mmcblk0p2
  3. exit
  4. adb pull /sdcard/mmcblk0p2 mmcblk0p2
複製代碼
回存:
  1. adb push mmcblk0p2 /sdcard/mmcblk0p2
  2. adb shell
  3. dd if=/sdcard/mmcblk0p2 of=/dev/block/mmcblk0p2
  4. exit
複製代碼
M8重新上鎖(UnLocked --> Locked)手動操作
用Hex Editor XVI32打開mmcblk0p2,Address --> Goto... 搜尋Hex:$8404,找到 "HTCU"(意即:UnLocked)
刪掉這4個字後存檔並回存手機即可
完成後即為 "\x00\x00\x00\x00" --> 空白 = Locked


指令
  1. adb shell
  2. echo -ne '\x00\x00\x00\x00' | dd of=/dev/block/mmcblk0p2 bs=1 seek=33796
複製代碼
M8重新解鎖(Locked --> UnLocked
手動操作
用Hex Editor XVI32打開mmcblk0p2,Address --> Goto... 搜尋Hex:$8404,找到 "_ _ _ _"(意即:4個空白格子)
分別輸入 "H" "T" "C" "U"後存檔並回存手機即可
完成後即為 "\x48\x54\x43\x55" --> "HTCU"


指令
  1. adb shell
  2. echo -ne '\x48\x54\x43\x55' | dd of=/dev/block/mmcblk0p2 bs=1 seek=33796
複製代碼
=====================
M8重新上鎖(ReLock
手動操作
用Hex Editor XVI32打開mmcblk0p2,Address --> Goto... 搜尋Hex:$8404;或是Dec:33796
分別輸入 "H" "T" "C" "L"後存檔並回存手機即可
完成後即為 "\x48\x54\x43\x4C" --> "HTCL"


指令
  1. adb shell
  2. echo -ne '\x48\x54\x43\x4C' | dd of=/dev/block/mmcblk0p2 bs=1 seek=33796
複製代碼

使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

7F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

M7 重新上鎖 / 解鎖

手動操作提取方法
dd提取mmcblk0p3
  1. adb shell
  2. dd if=/dev/block/mmcblk0p3 of=/sdcard/mmcblk0p3
  3. exit
  4. adb pull /sdcard/mmcblk0p3 mmcblk0p3
複製代碼
回存:
  1. adb push mmcblk0p3 /sdcard/mmcblk0p3
  2. adb shell
  3. dd if=/sdcard/mmcblk0p3 of=/dev/block/mmcblk0p3
  4. exit
複製代碼
M7重新上鎖(UnLocked --> Locked)手動操作
用Hex Editor XVI32打開mmcblk0p3,Address --> Goto... 搜尋Hex:$8404,找到 "HTCU"(意即:UnLocked)
刪掉這4個字後存檔並回存手機即可
完成後即為 "\x00\x00\x00\x00" --> 空白 = Locked


指令
  1. adb shell
  2. echo -ne '\x00\x00\x00\x00' | dd of=/dev/block/mmcblk0p3 bs=1 seek=33796
複製代碼
M7重新解鎖(Locked --> UnLocked
手動操作
用Hex Editor XVI32打開mmcblk0p3,Address --> Goto... 搜尋Hex:$8404,找到 "_ _ _ _"(意即:4個空白格子)
分別輸入 "H" "T" "C" "U"後存檔並回存手機即可
完成後即為 "\x48\x54\x43\x55" --> "HTCU"


指令
  1. adb shell
  2. echo -ne '\x48\x54\x43\x55' | dd of=/dev/block/mmcblk0p3 bs=1 seek=33796
複製代碼
=====================
M7重新上鎖(ReLock
手動操作
用Hex Editor XVI32打開mmcblk0p3,Address --> Goto... 搜尋Hex:$8404;或是Dec:33796
分別輸入 "H" "T" "C" "L"後存檔並回存手機即可
完成後即為 "\x48\x54\x43\x4C" --> "HTCL"


指令
  1. adb shell
  2. echo -ne '\x48\x54\x43\x4C' | dd of=/dev/block/mmcblk0p3 bs=1 seek=33796
複製代碼

使用道具

簽到天數: 189

該用戶今日未簽到

升級   100%

8F
 樓主| 發表於 2015-1-31 15:23 | 只看該作者

HBoot 去紅字方法

本帖最後由 gary8349 於 2015-4-15 21:06 編輯

這裡以修改台版M8為例
首先取得與手機版號相對應的Firmware.zip包
這裡以M8_Firmware_4.24.709.2.zip為範例
提取壓縮包內的 "hboot_signedbyaa.img" 和 "android-info.txt" 2個檔案並放在一起


使用 Hex Editor XVI32 開啟 "hboot_signedbyaa.img"
"Ctrl+F" 呼叫出搜尋視窗
選擇
鍵入關鍵字 "This build" 搜尋
紅字內容一格一格地 "空白鍵" 取代
原本空白的內容就不要動到,維持原樣即可
注意!!只要修改紅字,其餘的內容不要動到以免出錯!

紅字內容:
  1. This build is for development purposes only
  2. Do not distribute outside of HTC without HTC’s written permission.
  3. Failure to comply may lead to legal action.
複製代碼


修改完畢之後的樣子


"Ctrl+S" 將改好的檔案存檔
檔名一樣維持 "hboot_signedbyaa.img"


選取 "hboot_signedbyaa.img" 和 "android-info.txt"
在上面右鍵 --> 加到壓縮檔


記得壓縮檔存檔檔名改一下以免搞混
選擇zip格式,無壓縮


存檔後就成功了~

刷入前請先仔細檢查!修改HBoot風險極大,請謹慎操作~!!


使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2024-5-4 22:53

Discuz! X

© 2009-2023 Microduo

快速回覆 返回頂部 返回列表