
MediaTek(Dimensityなど)のオーバークロック、アンダーボルト事情
皆さんの端末に入っているsocは何でしょうか?
Snapdragon, Dimensity, Kirin, Unisoc, Spectrum, Exynos, Tensor
このように様々なsocがある中で(大体は最初の2つである)
今回はMTK(Dimensityなど)のsocに着目した話だ。
それは…
MTKのオーバークロックは可能なのか
だ。
色々検証して、結果がでたので、
今からその方法含め紹介します。
1. MTK端末のVendor_boot.img(Boot.img)を展開
Vendor_bootかbootのどちらかが必要です。
Vendor_bootパーティションがない場合はboot.imgです。
展開するのに使ったツールはこちら
こちらのツールをlinuxを用いて使用します。使い方は全て書いてあるので上記のサイトをお読みください。
展開すると、

このようなファイル群がでてきます。
ここにもし
[.dts]
という拡張子のファイルがあったら、そちらを直接編集して、gpuの周波数、電圧を変更することができます。
今回は無いので、dtbファイル(今はdtb.imgの状態で入っています。拡張子が消滅してますが…)をdtsファイルに変換します。
2. dtb(.img)をdtsに変換して、編集しよう!
まずこちらのextract-dtbコマンドでdtbファイルを展開します。
extract-dtb dtb -o 好きなディレクトリのpath
こちらのコマンドを使い展開いたしますと、


このようなファイルがでてきます。
kernelファイルと、
.dtbファイルがでてきましたね!
次にこちらをdtsに変換します。
私のファイル名に合わせるとこちらのコマンドで可能です。
dtc -I dtb -O dts --force -o output.dts 01_dtbdump_MT6985.dtb
こちらでやりますと、output.dtsというファイルに変換されます。
これでdtsファイルに変換できました!
3.変換したdtsファイルをTXTエディタで編集後、dtbファイルに変換し直す。
変換したdtsファイルを開いてみますと、

ちゃんとしたファイルになっていることを確認します。
つぎにこのように検索をかけてください。
※Mtkの種類によっては異なりますので、その場合は自分でノードを探してください。
opp-table
検索をかけると、いくつかあると思いますが、付近にこのようなgpuのノード↓に付属しているopp-tableを発見してください。

発見できたら、察してる人は察してると思います。そうです。こちらがgpuの周波数テーブルとgpuの電圧になります!!!
こちらを編集することでオーバークロックと低電圧化が理論上は…できます…
周波数と電圧は16進数で定義されます。
うまく編集できたら保存してファイルを閉じましょう。
保存したら今からこのdtsファイルをdtbファイルに変換してください。
output.dtsというファイル名の場合は、以下コマンドで変換可能です。
また、変換後のファイルは元のオリジナルのdtbファイルと同じ名前にしてください。
dtc -I dts -O dtb -o 01_dtbdump_MT6985.dtb output.dts
私の場合はこのようになります。
dtsからdtbに変換し直したファイルを再度dtb(.img)に統合する。
kernelファイルと統合して最初と同じ形に直す必要がアリマス。
catコマンドを使用します。以下のように最初は打ってください。
cat 01_dtbdump_MT6985.dtb > new_dtb.img
↑01_dtbdump_MT6985部分はアナタのdtbファイル名にしてください。
こちらを実行すると
new_dtb.img(任意のファイル名.img)というファイルができます。次にこちらに00_kernelファイルを統合します。
以下のコマンドを打ちます
cat 00_kernel new_dtb.img > final_dtb.img
こちらを実行すると、final_dtb.img(任意のファイル名.img)というファイルが完成します。これで元の形になりました!他の残ったファイルはもう消しても大丈夫ですよ!
あとはこちらのファイルを
dtb
というファイル名に戻します。
最後にVendor_bootをリパックして端末に焼いてみよう!

このように先ほどのdtbファイルをもとに戻し、
ツールのコマンドである、
./gradlew pack
を実行し、Vendor_boot.img.signed
を作成します!こちらのファイルの.signedを消せばimgファイルとして焼くことが可能です。
結果
実は私はmtk端末を所有しておりません!笑
なので外国の方に検証していただきました。機種はRedmi K50iです。
デフォルトでの周波数は950mhzでしたが…

1150mhzの追加に成功しています!!
これでできたのか…皆さんそう思いましたよね?
私もそう思いました…
しかしながら…


そうなんです…
性能が何も変わらないんですアアアアアアアアアアアアアアアアアア
ということでfakeOCが完成したというわけです…
一応電圧の値もいずれるようですが、機能するかはわかりません…(telegramにはUVは機能したという人はいましたが…)
まぁ実際にmtkの端末が手元にないのでわかりません…
ということでオーバークロックがmtkでは不可能だとわかった落下寝(¦3[▓▓]
でした!
誠に残念ですが…
アンダーボルトだけは機能する…!!
とだけ信じてこのノーㇳを終わらせます(は)
読んでくれてありがとうナスー🍆ノ( º _ ºノ)