トップ 一覧 置換 検索 ヘルプ RSS ログイン

Android の /system を書込可能にするの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!はじめに
ローカルストレージは
・内部ストレージ1
・内部ストレージ2 ( /mnt/sdcard )
になっている。
実際のSDカードは /mnt/extsd にマウントされる。
また、 /mnt/extsd は標準では書込ができないので注意
http://www.ecoop.net/memo/archives/2011-02-04-1.html

!!!初期化
 設定 -> バックアップとリストア -> データの初期化
で初期化できる。 データを初期化する際にSDカード(内部ストレージ2)も初期化しようとすると上手くいかないことがある。
全部初期化したい場合は
+SDカード(内部ストレージ2)を初期化せずに初期化
+初期化直後にSDカード(内部ストレージ2)を初期化
の順がいいと思う。
mount のオプションに remount を指定して、読み書きのオプションを変更する
まず、
 mount
で、 /system のマウントデバイスとタイプを確認する
 $ adb shell
 $ su
 # mount -o rw,remount -t タイプ パス /system 
例:
 # mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system 
で書き込み権限を与える。

!!!extsd を書き込み可能にする
http://hiroakishinohara.blogspot.jp/2012/04/padd50.html
!エミュレータで行う場合の注意
エミュレータを再起動すると /system の中身が戻るので注意。
もし、エミュレータで /system に加えた変更を維持したい場合は
+変更後のイメージを抽出
+抽出したイメージでエミュレータを起動
する必要がある

!!準備
*Android SDK をセットアップしておく。
*adb コマンドを使えるようにする
*Google USB Driver を入れる
*root化は不要

!!Windows 用のドライバ設定
!USBデバイスインスタンス値を調べる
WindowsとUSB接続し、Windowsの「システム」→「デバイス」で「不明なデバイス」になっている「Android」を選択し、「詳細」タブから「デバイスインスタンスパス」を選択する。これで、
 USB\VID_18D1&PID_0003&MI_01
あたりまでメモ。


!ドライバファイルを編集
Android SDK をインストール先から以下のファイルを探す
 extras\google\usb_drivers\androis_winusb.inf

この androis_winusb.inf を以下のように編集
 [Google.NTamd64]
 ; smart TV
 %SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0003
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0003&MI_01

 [Google.NTx86]
 ; smart TV
 %SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0003
 %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0003&MI_01

ドライバの選択で android-sdk-windows\usb_driver を指定すればインストール完了する。

!platform.xml の編集
 adb pull /system/etc/permissions/platform.xml platform.xml
で platform.xml を取得する。 platform.xml の
 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
   <group gid="sdcard_rw" />
 </permission> 

 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
   <group gid="sdcard_rw" />
   <group gid="media_rw" />
 </permission>
と編集する。

編集した platform を
 adb push platform.xml /system/etc/permissions/platform.xml
で戻す。 root化されていなくても書込できるはず。

 adb shell reboot
で再起動


!!!フォントを変更する
http://pocketgames.jp/blog/?p=20454
http://exabugs.blog50.fc2.com/blog-entry-49.html

!フォントをダウンロード
https://github.com/android/platform_frameworks_base/tree/master/data/fonts
から
 MTLc3m.ttf
をダウンロード。

!フォントをAndroidへ転送
ダウンロードしたフォントをAndroidへ転送する。
フォント名は DroidSansJapanese.ttf でなくても良い。
 adb push MTLc3m.ttf /system/fonts/DroidSansJapanese.ttf

!フォントのパーミッションを変更
パーミッションは変えなくても良いみたいだけど、一応他のフォントと同じにしておく。
 adb shell
 cd /system/fonts
 chmod 644 DroidSansJapanese.ttf

!fallback_fonts.xml を編集
Android から fallback_fonts.xml を取得
 adb pull /system/etc/fallback_fonts.xml

fallback_fonts.xml を編集
<familyset> の一番最初のノードとして
    <family>
        <fileset>
            <file>DroidSansJapanese.ttf</file>
        </fileset>
    </family>
を追加。

fallback_fonts.xml を Android へ転送
 adb push fallback_fonts.xml /system/etc/

!再起動
Android を再起動する。

!!!ハードウェアキーボード
Shift + _ でアンダーバーの入力が出来ない。
とりあえず、 google ime の辞書の設定で
 ? -> _
 あんだー -> _
とか登録しておく

!!!その他の設定
:言語:日本語に変更
:タイムゾーン:東京に変更
:入力アプリ:google IME が好き
:その他アプリ:
*terminal
*あすとろ
*youtube
*swi ftp
!Android x86 の場合
インストール時に /system を書き込み可能にするか選択できるので、
そこで書き込み可能すると良い。


{{category2 OS,Android}}