Googleが作るスマートフォン向けオペレーションシステムAndroidのバージョンは現在4.0で、アイスクリームサンドイッチ(ICS)といわれています。このAndroid 4.0はディフォルトではハードウェアのキーを廃して、画面に表示されるソフトキーで操作することとなりました。しかし、現在、Android4.0の様に、デザインされたスマートフォンは数少ないので、現実多くのAndroid 4.0携帯電話はハードウェア・キーを引き続き使用することになる。
このソフトキーを使えるようになると、役に立つことがある。自分のスマートフォンは2年ほど前に販売されたGalaxy Sの一機種である。そして、なぜか、ハードウェア・キーは動かなくなった。それならと、Android 4.0をインストールして、ソフトキーをハードウェア・キーの代わりにすることにした。結果、上手く行ったので、メモとして簡単に方法を記載しておきます。
http://forum.xda-developers.com/showthread.php?t=1501615
このようなカスタムロムを入れるのは、ルート化するなどのハードルがありますが、比較的に簡単に行うことが出来ます。例えば、この様な記事がたくさん書かれておりますので、それにきちんと従って行いました。もちろん自己責任でよろしくお願いいたします。
http://www.androidauthority.com/captivate-android-4-0-3-ice-cream-sandwich-dark-knight-rom-56725/
How to Install and Set up ADB/USB Drivers on Android0
http://www.downloadatoz.com/howto/how-to-install-and-set-up-adb-usb-drivers-on-android,22531.html
この記事を元に、Androidの開発ツールをPCにインストールします。現在、adb.exeはplatform-toolsに入っていますので、開発ツールをインストールした後に、SDK Managerを使ってインストールする必要があります。でも、どこかから、adb.exeとAdbWinApi.dllをダウンロードして、作業フォルダにいれても動いたりします。
その時、ADBに付随したUSBドライバ―を入れる必要があります。それをもし、サムソン等の端末会社のドライバ―が入っている場合、 USBDeviewを使って、サムソン端末なら端末が使っているサムソンのドライバ―を全て削除します 。それから、再度端末をUSBで接続すると、ADBに対応したドライバ―がインストールされるはずです。
ここから、ようやくソフトキーを導入するスタート・ラインに立てたと言うことです。一つの記事で全てを説明しているものが無かったので、複数の記事を読みました。
How to decompile/compile using apktools
http://www.galaxynexusforum.com/forum/galaxy-nexus-hacking-mods-lte-cdma/2562-how-decompile-compile-using-apktools.html
enable ics keys on any ics rom detailed guide
http://forum.xda-developers.com/showthread.php?t=1391281&goto=nextnewest
[HOWTO] enable on-screen buttons in ICS rom
http://forum.xda-developers.com/showthread.php?t=1364757
このソフトキーを使えるようになると、役に立つことがある。自分のスマートフォンは2年ほど前に販売されたGalaxy Sの一機種である。そして、なぜか、ハードウェア・キーは動かなくなった。それならと、Android 4.0をインストールして、ソフトキーをハードウェア・キーの代わりにすることにした。結果、上手く行ったので、メモとして簡単に方法を記載しておきます。
Android4.0にアップデート
まずは、私の携帯電話は正式にAndroid4.0にアップデートされておりませんので、Galaxy Nexus ROMをポートしたDark Knight 3をインストールしました。これで、まずはAndroid 4.0が手に入りました。http://forum.xda-developers.com/showthread.php?t=1501615
このようなカスタムロムを入れるのは、ルート化するなどのハードルがありますが、比較的に簡単に行うことが出来ます。例えば、この様な記事がたくさん書かれておりますので、それにきちんと従って行いました。もちろん自己責任でよろしくお願いいたします。
http://www.androidauthority.com/captivate-android-4-0-3-ice-cream-sandwich-dark-knight-rom-56725/
ADBとUSBドライバ―の導入
ソフトキーを導入するには、既にインストールされているAndroidオペレーションシステムのファイルを書き換える必要があります。その為に、Android Debug Bridge(ADB)と言われるツールを使い、PCやMac等から、書き換えるファイルを入れ替えます。How to Install and Set up ADB/USB Drivers on Android0
http://www.downloadatoz.com/howto/how-to-install-and-set-up-adb-usb-drivers-on-android,22531.html
この記事を元に、Androidの開発ツールをPCにインストールします。現在、adb.exeはplatform-toolsに入っていますので、開発ツールをインストールした後に、SDK Managerを使ってインストールする必要があります。でも、どこかから、adb.exeとAdbWinApi.dllをダウンロードして、作業フォルダにいれても動いたりします。
その時、ADBに付随したUSBドライバ―を入れる必要があります。それをもし、サムソン等の端末会社のドライバ―が入っている場合、 USBDeviewを使って、サムソン端末なら端末が使っているサムソンのドライバ―を全て削除します 。それから、再度端末をUSBで接続すると、ADBに対応したドライバ―がインストールされるはずです。
ここから、ようやくソフトキーを導入するスタート・ラインに立てたと言うことです。一つの記事で全てを説明しているものが無かったので、複数の記事を読みました。
How to decompile/compile using apktools
http://www.galaxynexusforum.com/forum/galaxy-nexus-hacking-mods-lte-cdma/2562-how-decompile-compile-using-apktools.html
enable ics keys on any ics rom detailed guide
http://forum.xda-developers.com/showthread.php?t=1391281&goto=nextnewest
[HOWTO] enable on-screen buttons in ICS rom
http://forum.xda-developers.com/showthread.php?t=1364757
framework-res.apkの抜き出し
ココに記載されている、 apktools-ics - MinusZIPファイルを解凍して適当なフォルダに入れます。例えば、c:\apktoolsとかでよいでしょう。これらのツールはコマンドラインでそのまま動かすことが出来ますが、 Java runtimeを入れておく必要があります。
そして、このc:\apktoolsフォルダに携帯端末からframework-res.apkを抜き出します。
まずは、携帯電話をUSB debugging modeにセットアップしてから、コンピューターにUSBで接続します。これからはウインドウズのCMDを使ってコマンドラインで操作を行います。私はUNIX環境が好きなので、Cygwinを代わりに使います。
指定したフォルダに移動します。
そして、framework-res.apkを抜き出します
こんな記述を見たら、抜き出すことに成功したはずです。
2932 KB/s (4955204 bytes in 1.650s)
"c:\apktools"フォルダに入っている、apktool.jar.1.4.2をapktool.jarに名前の変更をします。
念のためにフレームワークをインストールします。これは一度でOKです。
これで、framework-resをデコンパイルすることが出来ます。この時、バージョン1.4.2を使わないと失敗します。
"c:\apktools"に\framework-resのフォルダが出来ているはずです。その中の、\res\values\bools.xmlをテキストエディタで開けてください。そして、下の写真の様に、bools.xmlconfig_showNavigationBarをtrueの値に書き換えます。
そしたら、次はリコンパイルを行います。大事なことは、バージョン1.4.3のapktool.jarを使うことです。その為、今のapktool.jarをapktool.jar.1.4.2に名前を変え、apktool.jar.1.4.3をapktool.jarにします。
そして、リコンパイル!完了するのに数分かかるかもしれません。
成功したら、こんなメッセージが見れるはずです。
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
そして、c:\apktools\framework-res\distに新しいframework-res.apkが入っているはずです。
この新しいframework-res.apkをそのまま、携帯端末に戻してはいけません。変更箇所だけを取り出して、それを元にframework-res.apkに戻してやるのです。今回はXMLファイルだけを変更したので、resources.arscを移し替えれば良いです。7zip等を使えば簡単に置き換えることが出来ます。
終わったら、framework-res.apkを携帯端末に戻してあげます。
こんなメッセージが出たら終了です。
1457 KB/s (4955245 bytes in 3.319s)
後はリブートしてあげたらオシマイです。
アイスクリームサンドイッチ(ICS)が立ち上がったら、下のように3つのソフトキーが画面の下に見えるはずです。
今回はかなりギークな内容になってしましました。もし何が書いてあるのか分からないようでしたら、下手に弄らないことです。携帯端末が動かなくなっても私は一切は責任はもてません。自己責任でよろしくお願いいたします。
そして、このc:\apktoolsフォルダに携帯端末からframework-res.apkを抜き出します。
まずは、携帯電話をUSB debugging modeにセットアップしてから、コンピューターにUSBで接続します。これからはウインドウズのCMDを使ってコマンドラインで操作を行います。私はUNIX環境が好きなので、Cygwinを代わりに使います。
指定したフォルダに移動します。
cd "c:\apktools"
そして、framework-res.apkを抜き出します
adb remountadb pull /system/framework/framework-res.apk
こんな記述を見たら、抜き出すことに成功したはずです。
2932 KB/s (4955204 bytes in 1.650s)
framework-res.apkのデコンパイル
"c:\apktools"フォルダに入っている、apktool.jar.1.4.2をapktool.jarに名前の変更をします。
念のためにフレームワークをインストールします。これは一度でOKです。
java -jar apktool.jar if framework-res.apk
これで、framework-resをデコンパイルすることが出来ます。この時、バージョン1.4.2を使わないと失敗します。
java -jar apktool.jar d framework-res.apk
framework-res.apkの変更
"c:\apktools"に\framework-resのフォルダが出来ているはずです。その中の、\res\values\bools.xmlをテキストエディタで開けてください。そして、下の写真の様に、bools.xmlconfig_showNavigationBarをtrueの値に書き換えます。
[HOWTO] enable on-screen buttons in ICS rom - xda-developers via kwout
同じように、 dimens.xmlを開いて、navigation_bar_heightの値を37.0dipに書き換えます。これをする事により、画面が狭くなるのをある程度やわらげます。34.0でも問題ありませんでした。
framework-res.apkのリコンパイル
そしたら、次はリコンパイルを行います。大事なことは、バージョン1.4.3のapktool.jarを使うことです。その為、今のapktool.jarをapktool.jar.1.4.2に名前を変え、apktool.jar.1.4.3をapktool.jarにします。
そして、リコンパイル!完了するのに数分かかるかもしれません。
java -jar apktool.jar b framework-res
成功したら、こんなメッセージが見れるはずです。
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
そして、c:\apktools\framework-res\distに新しいframework-res.apkが入っているはずです。
この新しいframework-res.apkをそのまま、携帯端末に戻してはいけません。変更箇所だけを取り出して、それを元にframework-res.apkに戻してやるのです。今回はXMLファイルだけを変更したので、resources.arscを移し替えれば良いです。7zip等を使えば簡単に置き換えることが出来ます。
framework-res.apkを携帯端末に戻す
終わったら、framework-res.apkを携帯端末に戻してあげます。
adb push framework-res.apk /system/framework/
こんなメッセージが出たら終了です。
1457 KB/s (4955245 bytes in 3.319s)
後はリブートしてあげたらオシマイです。
adb reboot
アイスクリームサンドイッチ(ICS)が立ち上がったら、下のように3つのソフトキーが画面の下に見えるはずです。
今回はかなりギークな内容になってしましました。もし何が書いてあるのか分からないようでしたら、下手に弄らないことです。携帯端末が動かなくなっても私は一切は責任はもてません。自己責任でよろしくお願いいたします。