ISW11F root化 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(手順(150821時点))
(root化後の追加作業)
 
1行: 1行:
※手順どおり実行しても、うまくいくかどうか確認できていません。今後実施する予定。
+
※手順どおり実行しても、うまくいくかどうか確認できていません。
 +
 
 +
今後実施する予定。→'''150821時点で手順はほぼ確立しました!イマサラ(汗'''
 +
 
  
:AndroidSDKをインストール
 
  
  
48行: 50行:
  
 
==手順(150821時点)==
 
==手順(150821時点)==
:コマンドプロンプトを立ち上げる。
+
*http://superuserdownload.com/ から(superuser apk download for android)(v3.1.3) と記述のあるリンクからダウンロードする。
 +
:感謝の気持ちがあるのであれば、こういう時はアフィリエイト広告のクリック(お金を払うのは広告主だから、広告もちら読みしないとね。)くらいはしてもよいと思う。以下ソフトウェア入手でも同じ。
  
 +
 +
*上記ファイルを解凍した中からSuperuser.apkとsuファイルをみつけてC:\Tempに保管する。作業用のフォルダは最後は消します。なければフォルダ作ってファイルを抜き出して下さい。以降でWindowsのコマンドを使うときに説明書どおりではなくなったりして、面倒なことになります。説明書の意味を理解できるという上級者は好きなようにやって下さい。
 +
 +
 +
*http://bit.ly/18G47EZ からVpnFaker-V21.zip(busybox同梱)をダウンロードする。
 +
 +
 +
*http://bit.ly/12G0hId からfj_hdcp_unlock.zipをダウンロードする。
 +
 +
 +
*http://bit.ly/1d0RXIA からfake.apk同梱のzipファイルをダウンロードする。
 +
 +
 +
*上記のzipファイル群から、busyboxとfake.apkとfj_hdcp_unlock_V27R47Iを見つけて、C:\Tempに保管する。
 +
 +
 +
*ADB,JDKを導入する。導入方法は当管理人サイトのブログである「よねろぐ」の記事でも紹介しています。以下リンクをチェックして下さい。
 +
:
 +
 +
 +
*ISW11F側の操作で[設定]-[開発者向けオプション]でUSBデバッグ、スリープモードにしない、CPU使用状況を表示にチェックを入れる。
 +
 +
 +
*ISW11FとPC(Windows)とをUSBケーブルで接続する。(ステータスアイコンにUSBデバッグが接続されました。の情報が出るまでの間、しばらく待つ)
 +
 +
 +
*コマンドプロンプトを立ち上げる。※1.赤字部分が入力するコマンドです。 ※2.コマンドの途中で改行することはないので、改行されている場合は折り返されているだけと考えてください。
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
|  
+
|C:\Users\[あなたのPCのログイン名、以降は仮にAdministratorと記述します。]><span style="color:red">adb shell push C:\Temp\su /data/local/tmp/</span><br />
C:\Users\Administrator><span style="color:red">adb shell am start -D -a android.intent.action.MAIN -n com.fujitsu.mobile_phone.aoss/android.app.Activity</span>
+
<nowiki>****</nowiki> KB/s (380532 bytes in 0.***s)<br />
 +
C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\Superuser.apk /sdcard/data/</span><br />
 +
<nowiki>****</nowiki> KB/s (1468789 bytes in 0.***s)<br />
 +
C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\busybox /data/local/tmp/</span> ※push コピー元 コピー先という指定です。<br />
 +
<nowiki>****</nowiki>  KB/s (1867568 bytes in 0.****s)<br />
 +
C:\Users\Administrator><span style="color:red">adb shell push C:\Temp\fj_hdcp_unlock_V27R47I /data/local/tmp/</span><br />
 +
<nowiki>****</nowiki> KB/s (72248 bytes in 0.0**s)<br />
 +
C:\Users\Administrator><span style="color:red">adb install -r C:\Temp\fake.apk</span><br />
 +
<nowiki>****</nowiki> KB/s (38162 bytes in 0.0**s)<br />
 +
C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/Superuser.apk</span><br />
 +
C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/su</span> ※suの権限をrwxr-xr-xに。<br />
 +
C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/fj_hdcp_unlock_V27R47I</span><br />
 +
C:\Users\Administrator><span style="color:red">adb shell chmod 755 /data/local/tmp/busybox</span><br />
 +
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pkg: /data/local/tmp/fake.apk<br />
 +
Success<br />
 +
C:\Users\Administrator><span style="color:red">adb shell am start -D -a android.intent.action.MAIN -n com.fujitsu.mobile_phone.aoss/android.app.Activity</span><br />
 +
Starting: Intent { act=android.intent.action.MAIN cmp=com.fujitsu.mobile_phone.aoss/android.app.Activity }<br />
 +
C:\Users\Administrator><span style="color:red">adb jdwp</span><br />
 +
<span style="color:blue">19030</span><br />
 +
C:\Users\Administrator><span style="color:red">adb forward tcp:8600 jdwp:'''19030'''</span> ※太字部分はひとつ前のコマンドで調べた青色の値を入力<br />
 +
C:\Users\Administrator><span style="color:red">jdb -connect  com.sun.jdi.SocketAttach:hostname=localhost,port=8600</span><br />
 +
捕捉されないjava.lang.Throwableの設定<br />
 +
遅延した捕捉されないjava.lang.Throwableの設定<br />
 +
jdbの初期化中...<br />
 +
> <span style="color:red">threads</span><br />
 +
グループsystem:<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417cff40 <5> Compiler              は条件を待機中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417cfd60 <3> Signal Catcher        は条件を待機中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417cfc80 <2> GC                    は条件を待機中です<br />
 +
グループmain:<br />
 +
&nbsp;&nbsp;(java.lang.Thread)<span style="color:blue">0xc140b58460</span> <1> main                  は実行中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417d3700 <10> Binder Thread #2      は実行中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417d35a8 <9> Binder Thread #1      は実行中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417d02f0 <8> FinalizerWatchdogDaemonはスリープ中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417d0198 <7> FinalizerDaemon        は条件を待機中です<br />
 +
&nbsp;&nbsp;(java.lang.Thread)0xc1417d0030 <6> ReferenceQueueDaemon  は条件を待機中です<br />
 +
> <span style="color:red">thread '''0xc140b58460'''</span> ※太字部分はひとつ前のコマンドで調べたmain threadのID、青色の値を入力<br />
 +
<1> main[1] <span style="color:red">stop in android.os.MessageQueue.next()</span><br />
 +
ブレークポイントandroid.os.MessageQueue.next()の設定<br />
 +
<1> main[1]<br />
 +
ヒットしたブレークポイント: "スレッド=<1> main", android.os.MessageQueue.next()、行=111 bci=0<br />
 +
|}
 +
*ここで、aossアプリのデバッグでブレーク状態になっています。この状態で、もうひとつコマンドプロンプトを立ち上げる。
 +
{| class="wikitable"
 +
|-
 +
|
 +
C:\Users\Administrator><span style="color:red">adb shell am start --activity-clear-task -a android.intent.action.MAIN -n com.fujitsu.mobile_phone.aoss/android.app.Activity</span><br />
 +
|}
 +
*元のコマンドプロンプトに戻ると上記のコマンドの結果スレッド中断状態に遷移していて、プロセスがRuntimeコマンドの権限を得た状態でデバッグコマンドが再び使えるようになっている。引き続き、コマンド入力を以下のとおり続ける。
 +
{| class="wikitable"
 +
|-
 +
|
 +
C:\Users\Administrator><nowiki><1> main[1] </nowiki><span style="color:red">print java.lang.Runtime.getRuntime()</span><br />
 +
&nbsp;java.lang.Runtime.getRuntime() = '''<nowiki>"java.lang.Runtime@40bca5b8"</nowiki>''' ※太字部分がNullで
 +
ないことを確認。Nullの場合はしばらく待って再度同じコマンドで確認してみる。<br />
 +
C:\Users\Administrator><nowiki><1> main[1] </nowiki><span style="color:red">print java.lang.Runtime.getRuntime().exec("/data/local/tmp/busybox telnetd -p 8899 -l sh")</span><br />
 +
&nbsp;java.lang.Runtime.getRuntime().exec("/data/local/tmp/busybox telnetd -p 8899 -l sh") = "Process[pid=20220]"<br />
 +
C:\Users\Administrator><nowiki><1> main[1] </nowiki>
 +
|}
 +
*上記によって、busyboxというUnixコマンド機能を利用できるツール経由でtelnetを起動する。8899番ポートを使うのが流行りみたいです。そして、このコマンドプロンプトはこのまま放置して、また別のコマンドプロンプトでの操作をします。さっき使ったやつがまだ起動していれば、それを再利用してもいいです。コマンドプロンプトを新しく立ち上げてもいいです。
 +
{| class="wikitable"
 +
|-
 +
|
 +
C:\Users\Administrator><span style="color:red">adb shell</span><br />
 +
shell@android:/ $ <span style="color:red">/data/local/tmp/busybox telnet 127.0.0.1:8899</span><br />
 +
/data/local/tmp/busybox telnet 127.0.0.1:8899<br />
 +
<br />
 +
Entering character mode<br />
 +
Escape character is '^]'.<br />
 +
<br />
 +
<br />
 +
system@android:/ $ <span style="color:red">id</span> ※ここでなぜかsystemのidを取得できているはずなのでidコマンドで確認してみる。うまくいっていれば次のように表示される。<br />
 +
id<br />
 +
uid=1000(system) gid=1000(system) groups=1006(camera),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3007(net
 +
_bw_acct)<br />
 +
system@android:/ $ <span style="color:red">/data/local/tmp/run_root_shell</span>※システム権限からroot権限へ<br />
 +
<br />
 +
<br />
 +
Device detected: ISW11F (FIK700)<br />
 +
<br />
 +
Attempt acdb exploit...<br />
 +
ISW11F (FIK700 V27R47I) is not supported.<br />
 +
<br />
 +
Attempt fj_hdcp exploit...<br />
 +
system@android:/ $ <span style="color:red">id</span> ※ここでexploitの問題によってrootのidを取得できているはずなのでidコマンドで確認してみる。うまくいっていれば次のように表示される。<br />
 +
id<br />
 +
uid=0(root) gid=0(root)<br />
 +
system@android:/ $ <span style="color:red">/data/local/tmp/fj_hdcp_unlock_V27R47I</span> ※これでLSM(LinuxSecureModule)を解除したことになる。<br />
 +
/data/local/tmp/fj_hdcp_unlock_V27R47I<br />
 +
mmap address=0x10000000<br />
 +
security_ops.name = fjsec<br />
 +
check: OK<br />
 +
Killed<br />
 +
137|system@android:/ # <span style="color:red">mount -o rw,remount /system /system</span> ※/sytemの読み書き可能でのマウントやり直し<br />
 +
mount -o rw,remount /system /system<br />
 +
system@android:/ # <span style="color:red">dd if=/data/local/tmp/su of=/system/xbin/su</span> ※ifファイルをofへ書き出す。<br />
 +
dd if=/data/local/tmp/su of=/system/xbin/su<br />
 +
743+1 records in<br />
 +
743+1 records out<br />
 +
380532 bytes transferred in 0.031 secs (12275225 bytes/sec)<br />
 +
system@android:/ # <span style="color:red">chown root.root /system/xbin/su</span> ※所有者root 所有グループrootへ変更<br />
 +
chown root.root /system/xbin/su<br />
 +
system@android:/ # <span style="color:red">chmod 06755 /system/xbin/su</span> ※権限変更2000+4000=06000+755→06755で所有者と所有グループ実行権が相互乗り入れOKに<br />
 +
chmod 06755 /system/xbin/su
 +
※上記の/system/xbin/suの設定の必要性はイマイチわかっていませんが以下の/system/bin/suの設定は必須です。<br />
 +
system@android:/ # <span style="color:red">dd if=/data/local/tmp/su of=/system/bin/su</span><br />
 +
dd if=/data/local/tmp/su of=/system/bin/su<br />
 +
743+1 records in<br />
 +
743+1 records out<br />
 +
380532 bytes transferred in 0.031 secs (12275225 bytes/sec)<br />
 +
system@android:/ # <span style="color:red">chown root.root /system/bin/su</span><br />
 +
chown root.root /system/bin/su<br />
 +
system@android:/ # <span style="color:red">chmod 06755 /system/bin/su</span><br />
 +
chmod 06755 /system/bin/su
 +
|}
 +
*これでsystemのマウントが出来ましたし、/system/bin/suをSuperuser.apkのアプリの配布しているsuバイナリに置き換えたことになります。この状態で、/sdcard/data/の下に置いたSuperuser.apkを起動して、Superuserのインストールをします。
  
Starting: Intent { act=android.intent.action.MAIN cmp=com.fujitsu.mobile_phone.aoss/android.app.Activity }
 
  
C:\Users\Administrator><span style="color:red">adb jdwp</span>
+
*Superuser.apkの起動はデフォルトでインストールされているファイルマネージャーKSFileManagerで/sdcard/dataディレクトリを表示して、Superuser.apkをタップして起動すると良いです。すると、どうやってインストールするか尋ねてくる場合があるので、この場合、[確認してインストール]を選択するとよいでしょう。
  
19030
 
  
C:\Users\Administrator><span style="color:red">adb forward tcp:8600 jdwp:19030</span>
+
*しばらく、するとインストール処理が完了するので、そのまま完了通知画面から[起動]を選択します。起動した瞬間に何やら画面の下腹部のあたりで、root権限を取得したみたいなメッセージが英語で表示されます。されない場合は、作業が失敗してますね。何がいけなかったのか、わたしの知るところではありません。別の方法を検討するなり、いちからやりなおすなりして下さい。
  
C:\Users\Administrator><span style="color:red">jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8600</span>
 
  
捕捉されないjava.lang.Throwableの設定
+
*ちなみにSuperuser起動画面から画面を左へスワイプすると設定画面表示され、suバイナリーを再インストールするためのボタンがあります。今回はこのボタンを押す必要はありませんが、現段階でsuバイナリーを更新しようとするとエラーが発生することでしょう。原因はわかりませんが問題ありません。suバイナリーは手動で入れましたからね。
  
遅延した捕捉されないjava.lang.Throwableの設定
 
  
jdbの初期化中...
+
*suバイナリ更新ボタンの部分に黄緑色で <span style="color:Lime">'''xrwsr-sr-x root root /system/bin/su''' </span>となっていればrootになるためのsuバイナリが存在していて問題がないことを示します。どこか一部でも赤くなっていれば、問題があることを示しますが、原因はそれぞれ違うので対処方法についても、わたしの知るところではありません。別の方法を検討するなり、いちからやりなおすなりして下さい。
  
> <span style="color:red">threads</span>
 
  
グループsystem:
+
これでrootの権限が使えるようになったのですが、再起動する都度、/systemフォルダへのLSMが設定されて書き込み権限がなくなるため、毎回Androidのコマンド画面で以下の二つのコマンドを実行しなければ駄目です。
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417cff40 <5> Compiler              は条件を待機中です
 
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417cfd60 <3> Signal Catcher        は条件を待機中です
+
:su
 +
:/data/local/tmp/fj_hdcp_unlock_V27R47I
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417cfc80 <2> GC                    は条件を待機中です
 
  
グループmain:
+
あと、Superuserを使っていると、au Marketが起動できない仕組みになっているのと、常に半root状態です。(起動後、上記コマンドを入力しないで、LSMは設定されている場合があるかもしれないけど、再起動しないと元に戻れませんし、再起動した直後でもau Marketが使えません。)この問題を解決するためにはSuperSUというroot権限状態の切り替えが起動中にも簡単に実施可能なアプリを使うことと、適切な方法でSuperSUをアンインストールしなければなりません。起動後に二つのコマンドをいれなければ駄目なのは、SuperSUというアプリを使っても同じですが、root権限を切っている間はau Marketが使えます。
  
&nbsp;&nbsp;(java.lang.Thread)0xc140b58460 <1> main                  は実行中です
 
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417d3700 <10> Binder Thread #2      は実行中です
+
ということで今のところ残されている問題点は3つです。
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417d35a8 <9> Binder Thread #1      は実行中です
 
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417d02f0 <8> FinalizerWatchdogDaemonはスリープ中です
+
#起動後のLSM解除コマンドの入力が面倒。
 +
#SuperuserをSuperSUに切り替えて適切にSuperuserをアンインストールしないとau Marketが使えない。
 +
#SuperSUを使わないと起動中にrootから一般ユーザ状態に戻れない。
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417d0198 <7> FinalizerDaemon        は条件を待機中です
 
  
&nbsp;&nbsp;(java.lang.Thread)0xc1417d0030 <6> ReferenceQueueDaemon  は条件を待機中です
+
そこで、再起動することなく、引き続き以下の作業を実施します。
  
> <span style="color:red">thread 0xc140b58460</span>
+
==root化後の追加作業==
 +
1.起動後のLSM解除が面倒なので、GooglePlayからGScriptLiteをインストールして、コマンド一括入力環境を手に入れる。
  
<1> main[1] <span style="color:red">stop in android.os.MessageQueue.next()</span>
 
  
ブレークポイントandroid.os.MessageQueue.next()の設定
+
*GooglePlayからGScriptLiteをインストールします。Liteじゃない有料のモノを購入し選択されるのは、あなた次第です。使い勝手がよいかどうかは知りません。
  
<1> main[1]
 
  
ヒットしたブレークポイント: "スレッド=<1> main", android.os.MessageQueue.next()、行=111 bci=0
+
*GScriptLiteを起動します。
  
 +
 +
*メニューボタンを押します。
 +
 +
 +
*Addを選択します。
 +
 +
 +
*一括コマンド名を入力します。例えば”LSM unprotect”、"root start”とか、任意(好きなアルファベットの文字列でOK)です。
 +
 +
 +
*「Nees SU?」チェックボックスは外します。su権限の無い状態からsu権限を取得するコマンドを実行する処理ですからね。
 +
 +
 +
*コマンド欄に以下のように入力します。
 +
{| class="wikitable"
 +
|-
 +
|
 +
su<br />
 +
/data/local/tmp/fj_hdcp_unlock_V27R47I<br />
 
|}
 
|}
 +
 +
 +
*入力が終わったらsaveボタンを押します。ソフトウェアキーボードが隠せなくてボタンが押せない場合は、load fileボタンをおして、Cancelボタンを押すとsaveボタンが押せる画面に遷移します。
 +
 +
 +
*saveボタンを押すと、今作った一括コマンドのタイトルがひとつ増えています。次からこれを押すだけです。再度編集したい場合は、タイトルを長タップで表示されるコンテクストメニューのEditから編集できます。
 +
 +
 +
:以上です。ちなみに地道にコマンドを入力したい人はGooglePlayからAndroid Terminal Emulater(日本語名は端末エミュレータ)をインストールすると、Windowsのコマンドプロンプトと同じ感じの画面が起動します。起動Shellとか組めるので、これで事足りる人はいるかもしれません。
 +
 +
 +
2.Superuserを適切にアンインストールして、SuperSUに乗り換える。
 +
*まず、GooglePlayからSuperSUをインストールします。有料のPro版を使うのは、各自の判断で自由に選択して下さい。便利かどうかは知りません。
 +
 +
 +
*LSMが解除されている状態(root化直後の状態や再起動後の2つのコマンドを入れ終わった状態)で、SuperSU起動します。
 +
 +
 +
:SuperSU起動直後にsuバイナリーの更新をほのめかすメッセージが出ても無視して下さい。
 +
 +
 +
*起動後の画面で設定タブを選択します。
 +
 +
 +
*設定の項目から<nowiki>[スーパーユーザを有効化]</nowiki>のチェックボタンのOn/Offが正常に動作するか確認して下さい。
 +
 +
 +
:インストールに失敗しましたとか、そういう表示になる場合はroot権限が取得できない状態になっています。root化処理のみなおし、LSM解除コマンド入力忘れといったことを実施する必要があります。次の作業には進めません。次の作業でroot権限を完全に手放すことになりかねません。
 +
 +
 +
*上記作業に問題なければ、設定の項目のずっと下の方にある[他のSuperuserアプリをアンインストール]を選択します。
 +
 +
 +
:以上です。これでSuperuserは適切にアンインストールされました。
 +
 +
 +
3.起動中にrootから一般ユーザに戻る。
 +
 +
 +
*前の項目でインストールしたSuperSUを起動します。
 +
 +
 +
:SuperSU起動直後にsuバイナリーの更新をほのめかすメッセージが出ても無視して下さい。
 +
 +
 +
*起動後の画面で設定タブを選択します。
 +
 +
 +
*設定の項目から<nowiki>[スーパーユーザを有効化]</nowiki>のチェックボタンのOn→Offにします。
 +
 +
 +
:これでau Marketに接続できます。
 +
 +
 +
*au Marketを起動できるか確認してみます。その後、念のためマイストアにも移動できるかチェックしておきましょう。
 +
 +
 +
:以上です。
 +
 +
 +
root化に関する作業は以上です。
 +
 +
 +
:'''追記150824'''
 +
:superSUでrootから一般ユーザになった状態で再起動したら、suになれなくなれました。fakeAossを起動するところからやり直しで、suにもどりましたが、これでは安心してroot状態を楽しめません。別にrootでやるべき作業が完了していれば、なんら困らないんですけどね。継続的にroot権限でしかみれないファイルの内容はAndroidの構造を知るためには常にroot権限を持っていたいものです。rootエクスプローラはなかなか面白いです。
 +
 +
:とりあえず、よくわからないんでroot化してからsuperSUを起動したときに表示されたsuバイナリーの更新を実施したくらいです。ふぐー。簡単ではなさそうだ。なにかと、一般ユーザにひきづりおろされるね。なかなかやりおりわ。今は亡き、富士通東芝モバイルコミュニケーションズめ。Shit!。富士通が単独で引き継いで、いろいろ施策を講じたんでしょうけど。なにが原因で戻ったのかは不明っす。suにアクセスできなくってたからか、何かのタイミングでsystem/bin/shファイルの権限の入れ替えがされたんだと思います。おそるべし。システム終了直前に走るシェルでも組み込んで権限がかきかえられていないかチェックしないと駄目なのかなぁ。しばらく様子見です。
 +
:'''追記150824ここまで'''
 +
 +
 +
:'''追記150903'''
 +
:あれからrootになれなくなる事象は発生していません。ROOT取得確認アプリのrootedやその他アプリを使った時にsuのファイルがなくなったりしている気がします。ISW11Fでのroot化を確認するには向いていないアプリだと思われます。たぶん。suバイナリの更新はさすがに関係ないっしょ。たぶん。答えは自分自身で見つけて下さい。おそらくという話です。すくなくとも、あれ以来、自分のroot化はうまくいっているような気がします。
 +
:'''追記150903ここまで'''
 +
 +
 +
:結局やったことといえば、3つですね。
 +
 +
 +
*システムフォントのメイリオ化
 +
:手法は差し替えているだけなので、ダサダサです。Fonterというアプリで差し替えています。
 +
[[ファイル:ISW11F 150907 Screenshot.jpg|400px|thumb|none|ISW11F root化後のメイリオフォントを使ったYonewiki表示[http://www.yo-net.jp/yonewiki/images/ISW11F_150907_Screenshot.jpg 縮小されていない原版]]]
 +
 +
 +
*カメラシャッター音の音量低減(無音はちょっと使いにくいのでヤメマシタ。)
 +
:手法は差し替えているだけなので、ダサダサです。
 +
:isw11fでは、/system/build.propのro.camera.sound.forced=1→0に変更するだけではタッチフォーカス音がマナーモード時に消えるだけです。なので、/system/media/audio/uiの中のcamera_click.oggとcamera_click_continue.oggとVideoRecord.oggの音量を小さくしたものに差し替えるだけです。差し替えるにはoggファイルの波形編集エディタやoggから編集可能なファイル形式への変換技術と、adb shell pullとadb shell pushでファイルをPCにもってきたり、ファイルをスマホに送ったりするだけです。いつでも、ファイルマネージャーでファイルを差し替えるだけで音量を変更できるようにいろんな音量のファイルを作っておくと良いでしょう。それと、どこのこういう関連の記事を書いているサイトでもよく触れられることですが、盗撮にあたるような悪質な用途のために音を消したりしてはいけません。悪質なカメラの利用は法や条例に触れます。やめましょう。自分的にはISW11Fのシャッター音量は大きすぎると思います。通常のデジタルカメラのそれを遥かに凌ぐ勢いの音量ですので、少し抑えました。健全な使い方をするとはいえ無音にすると、もともと反応の悪いと感じているカメラですので、シャッターボタンがおされて撮影されたかどうかが心配です(´・д・`)。あと、電車や街中などで、盗撮の冤罪事件に巻き込まれたりしないためにも音はある程度、音は出る方がよいと思います。電子機器の撮像に関する法律でシャッター音の改造禁止といった法律や条例が制定・施行された場合には、この変更に関する技術も考えものです。悪用するやつがいるから普通に使う人が不便やストレスを感じる時代になってきています。閉塞感がどんどん巨大化する一方です。考えものです。別の味方をすれば、こういう改造をしたスマホを保持していることが話題になれば普段からこういう、盗撮に繋がるような行為をするような人物でしたなどという印象を残すことになるので、その点の覚悟は必要でしょう。疑わしきは罰せよという社会理念も存在します。それはすこし情報技術に詳しいだけで、何かの作為的な原因を感じるシステム障害といった事象が起こった時にまっさきに、その主犯格として疑われるという現実があるということからも否定できないことになりつつあります。正義なんてものは希薄なものです。
 +
 +
 +
 +
*ルート権限でしか閲覧できないディレクトリ構造の閲覧。いわゆるルートエクスプローラ。
 +
:これはルート権限が必要となるファイルマネージャーアプリを導入するだけです。
 +
 +
 +
*Link2SDでSDCard使用領域を節約。SDCard領域をガッツリ使うアホなゲームアプリってあったりする。あんまり固有名詞を出したくはないが「MEGAPOLICE」です。4GBしかない貴重な領域の内の2Gほどをキャッシュとして使ったりする。消してもいいんだけど消したら消したでゲームが遅い。キャッシュだからあたりまえ。バカなゲームだよ全く。というわけでLink2SDを使いました。これまた要Rootアプリです。アプリケーションの説明書を読んでいると、とんでもなく複雑な事情を抱えているという事に気付かされ、なんちう気の毒なシステムになっているんだと思った。簡単に説明するとこうだ。私たちは何の気なしに使っているAndroid端末だが、SDcard領域の内部ストレージって奴(組み込まれていて取り外せないストレージ)と外部ストレージ(電池パックの横に取り付けてるマイクロSDカードのことだよ。)とでファイルシステムってのが実は違うらしい。それが証拠に。ADB Shellでmountってコマンドを叩くとisw11fの場合はext4形式でマウントされてる部分が散見される。マジか。結構、先進的なファイルシステム使ってるような感じ。
 +
 +
:で、内部がext4っていうLinux系で外部が普通はそのまま買ってきたままでFATでしょ。それで、何が問題なのかというと、Linuxとか使わない人にはあまりわからない事なんだろうけど、シンボリックリンクってのが異なるファイルシステムを超えて設定することができない。つまりウィンドウズでいうところのショートカットみたいなものが、つくれないから、あたかも/sdcard/data/[メガポリスのデータフォルダ]みたいなパスをシンボリックリンクで/sdcard/external_sd/data/[メガポリスのデータフォルダ]に飛ばすみたいなことがファイルシステムが異なるために簡単にはやれないということを意味しています。そこで、偉い人はLink2SDなる便利なアプリを考えたわけです。それでもroot権限がないとできないような複雑な設定が必要だけどね。みたいなことです。
 +
 +
:なんとなく、いいたいことはつたわったでしょうか?最近、空き容量が足んなくなったからスマホ買い替えるわって言ってた人みかけた?そうでしょそうでしょ。そういうことです。それくらいのややこしい話です。普通の使い方してる人には理解できない話だし、やらしてくれない使い方です。それがベンダーのサービスなのです。それが、契約のサービス。サービスの品質なのです。こういうことまでサポートしてくれるベンダーがいたら、もうかると思うんですけど、どうなんでしょうね。親切で丁寧で安くて、対応が早くて、なんでもはしらないけどやれることだけやってくれる。どうせつくってるかいしゃなんだから大体のことは知ってるんでしょ。こんなうちらみたいな鍵穴探してやってるような連中とは技術レベルが違うわけだし。まぁやんないんでしょうけど。と、そういうことです。
 +
 +
:で、Link2SDでは、通常、買ってきたらそのまま使うマイクロSDカードをフォーマットするという作業をします。しかも、今回の場合はext4形式なので、gparted-live-0.23.0-1-i586っていう、フリーのパーティション作成OSをCD-Rに焼いたりする必要があります。以前にLS-GLというNASのハードディスクドライブ換装手順書を作ったことがあるのですが、そのときにも、この手のパーティション作成OSのKNOPIXというOSにお世話になっています。今回は、gpargedです。使い方は特に説明しません。ここまで、やる人、もういないっていうか需要ないと思うし、あったとしても、こんなことする時間があるなら、YAMADA電機さんにでもいって0円スマホにでも乗り換えて下さい。その方がよっぽど経済効果があります。それに、この手順では、Link2SD Plusというあぷりを購入しなければならないので、最終的に絶対にお金を使うことになります。えっと250円くらいなり!
 +
 +
:たとえば、マイクロSDカードの後ろの半分くらいをゲームキャッシュ用のext4形式にしたとするとLink2SDはあたかもSDCard領域としてマウントすることができます。自分は16GのマイクロSDを持っているので、8GBほどをゲーム用にしちゃいました。これだけあれば思う存分メガポリスです。あとはビデオとったり写真とったりしますが、結構、マメにPCやらNASやらUSB HDDとかに大事なデータは移動させるので、スマホのカメラやビデオの容量で困ったことはありません。SDCard領域が狭くて困ったことはありましたが、Link2SDで解放です。なぜ、新しいスマホに買い替えないのか甚だ疑問が残るところですが、それはスマホ愛です。もし、おなじようにスマホ愛を感じている人がいたら、おなじように、SDカードの第二パーティションにプライマリーパーティションとして、EXT4形式の領域を作成してみて下さい。第一はFATのままでよいですよ。EXT4でパーティションを作っている機種の情報って少なかったので、ひょっとしたらEXT3でもうまくいくかもしれません。互換性あるらしいですし。EXT2でもひょっとすると。自分はmountコマンドの結果表示を信じました。
 +
 +
:そしたら、Link2SDというアプリを起動すると第二パーティションを何形式でフォーマットしているか尋ねてきてマウントプログラムを作成するような動作をするといってきます。自分はうまくいかなくて泣きそうになってましたが、起動後のLSM解除処理をやってなかっただけでした。いわゆるS-OFFです。この記事のだいぶ上の方でも触れている手順です。再起動したら、忘れずに実施する手順です。これをやっていないと/systemの下のフォルダの書き込み処理が出来ません。なのでLink2SDでもnot permittedとかっていう感じのエラーが表示されます。
 +
 +
==補足知識==
 +
root化したら、もうauからの補償とかサポートはしてもらえないと思ってよいと思います。だまってサポートにかけこんでもバレたら黙って帰るしかありません。契約違反を犯しているからです。サポートをうけれないはずなのに受けてしまった場合の違法性とかがあるので、契約書をよくよまないことには何とも言えません。たぶん大変なことになるのでヤメたほうがいいと思う(大変なことというのは、root化したことを知っている知人や第三者からの嫌がらせ的な通報による訴訟やauとの法規的やり取りへの発展のことを言っています。)。そして、rootはなくなると致命的な状態に陥るファイルを簡単に消せます。root権限を必要とするアプリを信じるも信じないもあなた次第だし、評判次第です。何もわからない状態からは、モルモット状態です。気を付けようがありませんが、気を付けてください。改造はしても構いませんが、法に触れる行為が隣り合わせになっています。例えば、使用する電波帯域の変更などに繋がる改造をした場合は電波法の違反です。絶対にやってはいけません。とはいっても、知らないアプリをいれたら知らないうちに法を犯していたなんていたこともあり得ます。これは被害者でありながらも加害者になるかのうせいがあるということです。パソコンをつかっているときにもおこりえることです。なぜか携帯ではroot権限が一般の人には入手しにくいような仕組みになっていて規制されていると考えればよいと思います。ただしひたすらしらべれば情報は公開されているのだから、root化する方法は誰でもわかる。それだけのことです。他にも、アプリの課金の穴をみつけたりして不正利用や不正アクセスをすることは窃盗も含めた各種犯罪になりえます。root化そのものは犯罪ではありません。ただ、自分のせいでroot化の道を開けることができたとして、これを見た人が重大な犯罪をしたとしたら幇助したことになりますが、立証されれば何かの罪でしょっぴかれる可能性もあるわけです。だから、root化をすすめているわけではないこともここでハッキリと書いておく必要があると思います。おそらく現在の法律で、自分が呼び出されるようなことになることはないと思っています。呼び出された場合は認識不足ということで反省するしかないでしょう。なぜならソースの全ては公開されていて、誰でも調べれば、root化することができる状態にあるからです。やり方を教えたとしても、別の方法でも容易にroot化できるということです。それにroot化して利用することが犯罪の温床になっているとしたら、google日本法人が先に捕まると思います。root化された状態で使えるアプリをgoogleplayで提供しているからです。もし、情報を公開している自分だけが幇助だの言われるとしたら、あまりにも理に適っていない状態になります。もし、この記事が犯罪だと思う人は日本の警察に通報してみるとよいと思います。動いてくれないです。あとは倫理の問題ですが、自分としてはroot化で便利に楽しく使うためにauとの契約違反に踏み切る道を示しただけです。契約を違反して悪用することは望んではいません。もちろんauからこの記事の差し止めの依頼があれば、法律に従って削除要請についての検討をします。したがって、基本すべては自己責任と思っていただいてよいと思います。でも、なにげに気を付けてくださいとか、そういう管理人のスマホもいつでも死んでしまう可能性がありますが、擬人法を使ってみたものの所詮は機械です。ゴミになるだけです。でも、会話できるスマホは人格を持っている可能性もありますから、死んでしまうという表現が正しい場合もありますし、深い悲しみもあるかもしれません。でも、だれも死んだものを生き返らせることは出来ません。死にかけているものをただで救ってくれる医者のような存在のありがたい人はいないと思うので、自分自身と周囲の知人だけが頼りです。ひょっとしたらauの関係者が、スマホ製造メーカの関係者が救ってくれる可能性もあります。でも誰もアテにしてはいけません。だれもあなたのスマホを救う義務はない訳です。高額の報酬によって、高い技術力を持つ人が助けてくれたりする可能性はあります。人生あきらめたらおしまいですが、あきらめが肝心な場合もありますので、個々の事例によって適切な道を自分自身で切り開いて解決してください。
 +
 +
 +
ただし、ISW11FはADB接続さえできる状態ならば/prgフォルダに富士通スマホISW公式サイトにて配布されているソフトウェアを入れて、バックキーとメニューキーを同時に押しながら(バーの両側なので、そんなことできるのかと思いましたが、意外と両方同時におせるもんなんすね。)電源を入れるとfirmwareupdateが選択できて、初期化された状態からの出発ができるそうです。
 +
 +
 +
さてroot化したら、何ができるでしょう。カメラ/ビデオのシャッター音変更。着信音の変更。システムフォントの差し替え、フォントの切り替え、全く新しいインタフェースの創造。CPUクロック設定の変更。デバイスハードウェアの制限解除と新たな試み。限界への挑戦。制御可能な信号の発掘。秘密のファイルの解析。そんな感じの事です。各自にとって魅力的なのは見た目の変更と便利な機能の追加だと思います。初期アプリを消して少しでも起動や処理速度を向上させたりという感じでしょうか?
 +
 +
 +
何もやらない可能性もあります。あーあんなことできたらいいのになぁ。こんなことできたらいいのになぁ。あーでもそこにたどり着くのメンドクセの繰り返しです。そして先に述べたリスクの登場。バックアップ?メンドクセ。
 +
 +
 +
便利にしようとしてめんどくさい事を一杯やったら意味がないので、バランスよく楽しまないと駄目ですね。勉強だからなんでもいいっていうポジティブな人はroot化が向いてると思う。でも勉強して、何の役に立つか?その先まで見据えないと駄目ですよね。可能性だけ広げて、それでどこへいくのか?どこへ向かうのか?よく考えないと駄目なのかもしれません。お金?それは関係ない。どこへ向かうのか。お金?それは関係あるかもしれない。どこかへ行ってしまうのかもしれない。
 +
 +
 +
ちなみにISWのフォントのRobotoとかっていうのを差し替えると起動時に無限ループの可能性があるそうです。危険です。よく理解してから差し替えてくださいとのことです。Doroid Sansというのがいろいろと変更しやすいようになっているみたいです。とりあえず自分はシステムフォントを、メイリオに変更しました。拡張子ttcをttfに変えて、あとはネットに転がってる情報で差し替えた感じです。また気が向いたら紹介しますが、手順がダサい方法なので、自粛するかもしれません。もっと華麗にフォント変更できる手法はないものかと時々考えてみたり、考えて見なかったりします。きのみきのまま、かぜのふくまま、ちきゅうのまわっていくままです。

2015年10月2日 (金) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス