この記事は昔ニコニコのブロマガに掲載していた記事のお引越しになります。
root化出来るのは、2016年前半頃までに発売されたAndroid5.1までになるかと思われます。
昔の話
2016年の8月ごろマイブームはAndroid端末のroot化でした。この時期私は root化手順を勉強しつつ実践をつんでおりまして、 京セラユーザーのため、一応京セラのKYV31とKYV34をroot化してました。
勉強したことをまとめて行くので、興味ある方は読んで行ってください。
前置き
私の言う国産スマホとはシャープ、富士通、京セラの人間の鏡携帯メーカー3連星の事です。
兎に角、この3社はスマホのセキュリティ強化に熱心であり、それはそれで良いことなのですが、改造好きは買う対象にならないため、root化情報がなかなか出てこず、鬼門となっています。
と言っても、情報は少ないですが、実際はroot化に使う道具や手順はばらばらながらも出尽くしているので、それらの原理等を理解すれば基本的にはどの機種でもできるはずです。
※仮rootとれる事は絶対条件です
なお、この3社の中ではシャープ機が一番root化情報が多く、かつシャープ機が一番難易度が高いので、シャープ機のroot化手順を理解できれば、他の機種にも応用が利くはずです。
実際に自分はシャープ機の勉強をして、京セラに適用させました。そのために302shを練習機として買ってもいます。
↓が一番情報が羅列されているので、これが全部わかる人ならどの機種でも行けるでしょう。
【ROM焼き】SHARP AQUOS PHONE root総合
http://potato.2ch.net/test/read.cgi/smartphone/1412913735/
root化の基本
せっかくなので、なるべく初歩的なところから行きますが、androidスマホでroot化すると言うのは、ざっくり言うと、ファイルシステム上の所定の位置 /system/xbin
と言う場所に、suと言うファイルを置くことが目的です。
windows で感覚的に言えば、Cドライブのwindowsのsystem32フォルダに何かファイルを置くイメージでしょうか?
当然普通には置けないので、あれこれ手段を考えるわけです。一番基本的なことを言えば、/system フォルダは読み取り専用になっているので仮root権限でフォルダを読み書き可能な状態に変更してあげて、suと言うファイルを置けばOKでした。
でしたと言うのは、仮rootと言う概念が広がるとメーカーは仮rootを取られた時の対策を考えてきます。
それが単語で言えば、miyabiだったりmmc_protectだったりと言った対策です。
現状で私の調べた感覚でのroot化難易度ではシャープ>富士通>京セラだと思われます。
ただし、シャープが難易度が一番高い割にシャープのroot化情報が多いのは訳があり、シャープ機はカスタムromを入れらる可能性が高く一番発展性があります。
リカバリー機能だったり、全てをカスタムしたい人はシャープを選び、ちょっとrootアプリ動かしたいだけと言う人は、京セラを選べばいいと思います。
各社の対策
各社の/systemへの書き込み対策です。
シャープ
- mount使用不可(miyabi_lsm)
- insmod使用不可(miyabi_lsm)
- insmodダイジェストチェック
- ストレージ書き込み制限(ソフトウェア的)
- ストレージ書き込み制限(ハードウェア的)
京セラ
- mount使用不可(selinux)
- insmod使用不可(selinux)
- ストレージ書き込み制限(ハードウェア的)
富士通
富士通は実機を持っていないので、androidソースや過去の情報からですが、富士通lsmとソフトウェア的ストレージ書き込み制限だったと思います。
要するに国産スマホのroot化はこれらの対策を乗り越えていく必要があります。
大体の流れ
Pingpongエクスプロイトと言う脆弱性が残っている場合は、backdoor_mmapツールと言うものを利用すれば、大体やってくれます。
以下はツールがやってくれる事です。 自分でやらないと行けないところもあります。
- 仮rootとる
- カーネルダンプとる
- カーネルダンプからselinuxやmiyabiしているところのメモリのアドレスを特定
- カーネルダンプからソフトウェア的書き込み制限しているメモリのアドレスを特定(シャープのみ)
- カーネルダンプからinsmodダイジェストチェックしているメモリのアドレスを特定(シャープのみ)
- ハードウェア的書き込み制限を解除するモジュールの作成
- selinuxやmiyabiのアドレスにパッチ
- ソフトウェア的書き込み制限のアドレスにパッチ(シャープのみ)
- insmodチェックのアドレスにパッチ(シャープのみ)
- ハードウェア書き込み制限モジュールのインストール
- ハードウェア書き込み制限モジュールの実行
- /systemを書き込み可能状態でマウント
- suを/system/xbinに配置
各項目で細かい注意事項はありますがとりあえずSuperSU使うだけならこんな感じです。
シャープ機で完全カスタマイズを目指すのであれば、さらに以下を行います。
- boot領域のダンプ
- ブートローダーのダンプ
- ブートローダーの改造
- miyabi等を外したカーネルの作成
- bootダンプの展開
- 展開ファイルのカーネル差し替え
- bootの再イメージ化
- 改造ブートローダの書き込み
- 再イメージ化したboot領域の書き込み
以上が大体の国産スマホのroot化の手順になります。
次回以降は流れの各項目を詳しく見ていきたいと思います。
コメント
本記事、大変興味深く拝見させていただきました。 以前、魔界塔士様の、ブロマガで、SHARP機の、root化についての記事を読ませて頂ただいたのですが、見つけられなくなってしまいました。 本記事の、続きをに楽しみにしております。
I have a Kyocera Urbano V01 (KYV31) and would really like to root it.
Do you have a tutorial for how to root this phone?
How do you get the Urbano V01 into recovery mode?
I tried many combinations of [Vol+/-] + [Power] + [Home], but nothing worked.
Urbano V01ではキー操作からリカバリーモードへ入れないので、PCからADBツールを利用してリカバリーブートしてください
There is no way to go into recovery mode from keystrokes.
Use ADB tool from your computer for recovery boot.
ありがとうございました。ADBツールを利用してやっとリカバリーモードへ入れました。残念ながら、「No command」というエラーが出てきます。
https://imgur.com/fzIfQkI
日本語で問題ないでしょうか?
難しい話になりますが、Urbano V01はキー操作でリカバリーモードに入れないと言うのは
メーカーとしてリカバリーモードが不要という考えだと思います。
ADBでリカバリーブートをした場合はリカバリーブートパーティションからブートを行うのですが
メーカーがリカバリーモードを不要としているので、リカバリーブートパーティション自体はあるのですが
ブートファイルが保存されていないです。
そのため「No command」と出るのはそれはそれは正しいという事になります。
そのためリカバリーブートを使用するには自分でブートイメージを作成し書き込む必要があります
ただし、そのためにはMMCのロック解除、ブートローダーのアンロックが必要で
これらは失敗すると端末が起動できなくなるリスクがあります。
UQ版sharp aquos shv37でroot化できますか