2014/03/27

Galaxy S4 LTE-A (shv-e330s)ファームウェアアップデイト(NB3=>NC4)


韓国版Galaxy S4 LTE-A (shv-e330s、SKテレコム版)のファームウェアのアップデイトが配布されました。

更新内容は「ストーリーアルバム動作関連の安定化コードを適用」との事です。

【端末情報】


・Android version ; 4.4.2(KitKat) (変わらず)
・Baseband version ; E330SKSUCNB2 (変わらず)
・Kernel version ;
3.4.0-683766 dpi@SWDD5823 #1 Wed Feb 26 11:50:58 KST 2014
=> 3.4.0-1045461 dpi@SWDD3912 #1 Mon Mar 17 19:12:14 KST 2014
・Build number ; KOT49H.E330SKSUCNB3 => KOT49H.E330SKSUCNC4

【Root化】

ファームウェアをアップデイト後、以下の方法でroot化しました。(この方法ですとKNOXカウンターが更新されますので注意してください。)

Galaxy S4 LTE-A用CWM Recovery
http://galaxy-shw-m110s.blogspot.kr/2013/10/galaxy-s4-lte-acwm-recoveryver-5171.html

(参考)Samsung KNOXとは何か(Galaxyシリーズを4.3にアップグレードする際の注意事項)
http://galaxy-shw-m110s.blogspot.kr/2013/10/samsung-knoxgalaxy43.html

【省電力設定】

OSやアプリを細かく設定してバッテリ消費を抑制しています。

Androidのバッテリー消費を抑制する設定まとめ
http://galaxy-shw-m110s.blogspot.kr/2013/10/android.html

 - OSの各種設定の見直し
 - 各アプリの同期設定の見直し
 - 全く使わないアプリを無効化
 - バックグラウンドで不要な通信をするアプリの通信を制限
 - 常にバックグラウンドで起動してバッテリーを消費しているアプリを休止(要root化)
 - 全く使わないのに常にバックグラウンドで起動したりキャッシュされて無効化も出来ないシステムアプリを削除(要root化)

【広告の非表示】

Adawayを使用して広告を非表示にしています。

AdAwayで広告を非表示に
http://galaxy-shw-m110s.blogspot.kr/2011/11/adaway.html

【カメラの無音化】

Galaxy S4と同じ手法でカメラの無音化も可能です。

Galaxy S4のカメラの無音化(ESファイルエクスプローラー使用)
http://galaxy-shw-m110s.blogspot.kr/2013/05/galaxy-s4_2.html

【ブラウザのメニューに終了オプションを追加】

標準ブラウザのメニューに終了オプションを追加しています。

Galaxyの標準ブラウザのメニューに終了オプションを追加
http://galaxy-shw-m110s.blogspot.kr/2013/11/galaxy.html


2014/03/19

不要なプリインストールアプリを一括で無効化するスクリプト


Last Update : 18/Jun/2015

キャリアで購入した端末には多くのシステムアプリがプリインストールされています。

不要なシステムアプリは、無効にしたり、Greenifyで休眠させたりする事で、バックグラウンドでの無駄な起動を防いでいるのですが、全く使わないのに無効化出来ないアプリもあります。

そこで、こうした不要アプリの拡張子を一括で変換して無効にするスクリプトを作成してみました。

対象アプリの追加・削除を容易にする為、別ファイルのアプリリスト(テキストで箇条書き)を読み込んで動作する様にしてあります。

当然、端末がroot化されている事が条件です。

(参考)Galaxy S4で無効にしているアプリ
http://galaxy-shw-m110s.blogspot.kr/2013/05/galaxy-s4.html

(参考)常にバックグラウンドで起動してバッテリーを消費しているアプリをGreenifyで休止
http://galaxy-shw-m110s.blogspot.kr/2013/11/greenify.html

【スクリプト】

今回作成したのは以下のスクリプトです。

#!/system/bin/sh
if [ -f /system/xbin/su ]; then
 busybox mount -o remount,rw /system
 while read LINE
  do
       if [ -f $LINE  ]; then
   mv $LINE $LINE.old
   echo " Renamed $LINE "
  else
   echo " Can't find $LINE "  
  fi
 done < /data/tool/filelist.txt
fi
echo "Done"

スクリプトのファイル名は任意ですが、今回は、拡張子無しの"rename"にしました。

ファイルを保存する際はファイルの改行形式と権限に注意して下さい。


このスクリプトでは、ファイルの拡張子を".old"に変更(実際は元の拡張子の後ろに更に追加)する事で無効化していますが、お好みに応じて、ファイルを削除したり、移動(バックアップ)したりするスクリプトに書き換えても良いでしょう。

【アプリリスト(例)】

当方が対象としているアプリやファイルは以下です。

/system/app/AllshareFileShareServer/AllshareFileShareServer.apk(Wi-Fi Direct共有)
/system/app/AllshareMediaServer.apk/AllshareMediaServer.apk(近くのデバイス)
/system/app/AllshareMediaShare/AllshareMediaShare.apk(Nearby Service)
/system/app/ARMService/ARMService.apk (T store ARM)
/system/app/BeamService/BeamService.apk(Beaming Service)
/system/app/Bridge/Bridge.apk(KNOX)
/system/priv-app/CloudAgent/CloudAgent.apk(Clound Agent)
/system/app/DMMonitor/DMMonitor.apk (DMMonitor)
/system/priv-app/DSMLawmo/DSMLawmo.apk(DSMLawmo)
/system/app/ELMAgent/ELMAgent.apk (ELMAgent )
/system/app/GearManagerStub/GearManagerStub.apk(Gear Manager)
/system/app/GestureService/GestureService.apk(Gesture Service)
/system/app/GlanceView/GlanceView.apk (GlanceViewMK)
/system/priv-app/KLMSAgent/KLMSAgent.apk (KLMS Agent)
/sytem/app/KnoxAttestaionAgent/KnoxAttestationAgent.apk (KNOX)
/sytem/app/KnoxMigrationAgent/KnoxMigrationAgent.apk (KNOX)
/system/app/KnoxSetupWizardClient/KnoxSetupWizardClient.apk(KNOX)
/system/app/KnoxSetupWizardStub/KnoxSetupWizardStub.apk(KNOX)
/sytem/app/KnoxStore/KnoxStore.apk (KNOX)
/system/app/QuickConnect/QuickConnect.apk (クイック接続)
/system/app/SamsungHub/SamsungHub.apk (Samsung Hub)
/system/app/SamsungHubUpdater/SamsungHubUpdater.apk (Samsung Hub Updater)
/system/priv-app/sCloudDataSync/sCloudDataSync.apk(S-Cloud)
/system/priv-app/sCloudSyncSNote/sCloudSyncSNote.apk (Samsung SNote SyncAdapter.)
/system/app/SecEmail_K/SecEmail_K.apk (Eメール)
/system/app/SecExchange/SecExchange.apk (Eメール)
/system/app/SecKidsModeInstaller/SecKidsModeInstaller.apk(キッズモード)
/system/app/SecurityManagerService/SecurityManagerService.apk(KNOX関連)
/system/priv-app/SFinder/SFinder.apk (Sファインダー)
/system/priv-app/ShareVideo/ShareVideo.apk(動画を共有)
/system/app/SwitchKnoxI/SwitchKnoxI.apk (KNOX)
/system/app/SwitchKnoxII/SwitchKnoxII.apk (KNOX)
/system/priv-app/TPhone/TPhone.apk(T phone)
/system/priv-app/EasyLauncher/EasyLauncher.apk (TouchWizかんたんホーム)
/system/priv-app/TstoreAgent/TstoreAgent.apk  (T store Agent)
/system/priv-app/Z0000TSEED/Z0000TSEED.apk (T Store Utility)
/system/media/audio/ui/Cam_Start.ogg
/system/media/audio/ui/Cam_Stop.ogg
/system/media/audio/ui/Shutter.ogg

カメラの無音化時に無効化する必要のある音源ファイル(拡張子が".ogg"の物)も対象にしています。

フォルダは同じ機種でもファームウェアのバージョンにより"/system/app"から"/system/priv-app/"に変更される場合がありますので注意して下さい。

(参考)Galaxy S4のカメラの無音化(ESファイルエクスプローラー使用)
http://galaxy-shw-m110s.blogspot.kr/2013/05/galaxy-s4_2.html

リストに追加する際は、フルパスのファイル名を拡張子付きで記入します。

/system/app/AllshareFileShareServer/AllshareFileShareServer.apk
/system/app/AllshareMediaServer/AllshareMediaServer.apk
/system/app/AllshareMediaShare/AllshareMediaShare.apk
/system/app/ARMService/ARMService.apk
/system/app/BeamService/BeamService.apk
/system/app/Bridge/Bridge.apk
/system/priv-app/CloudAgent/CloudAgent.apk
/system/app/DMMonitor/DMMonitor.apk
/system/priv-app/DSMLawmo/DSMLawmo.apk
/system/app/ELMAgent/ELMAgent.apk
/system/app/GearManagerStub/GearManagerStub.apk
/system/app/GestureService/GestureService.apk
/system/app/GlanceView/GlanceView.apk
/system/priv-app/KLMSAgent/KLMSAgent.apk
/sytem/app/KnoxAttestaionAgent/KnoxAttestationAgent.apk
/sytem/app/KnoxMigrationAgent/KnoxMigrationAgent.apk
/system/app/KnoxSetupWizardClient/KnoxSetupWizardClient.apk
/system/app/KnoxSetupWizardStub/KnoxSetupWizardStub.apk
/sytem/app/KnoxStore/KnoxStore.apk
/system/app/QuickConnect/QuickConnect.apk
/system/app/SamsungHub/SamsungHub.apk
/system/app/SamsungHubUpdater/SamsungHubUpdater.apk
/system/priv-app/sCloudDataSync/sCloudDataSync.apk
stem/priv-app/sCloudSyncSNote/sCloudSyncSNote.apk
/system/app/SecEmail_K/SecEmail_K.apk
/system/app/SecExchange/SecExchange.apk
/system/app/SecKidsModeInstaller/SecKidsModeInstaller.apk
/system/app/SecurityManagerService/SecurityManagerService.apk
/system/priv-app/SFinder/SFinder.apk
/system/priv-app/ShareVideo/ShareVideo.apk
/system/app/SwitchKnoxI/SwitchKnoxI.apk
/system/app/SwitchKnoxII/SwitchKnoxII.apk
/system/priv-app/TPhone/TPhone.apk
/system/priv-app/EasyLauncher/EasyLauncher.apk
/system/priv-app/TstoreAgent/TstoreAgent.apk
/system/priv-app/Z0000TSEED/Z0000TSEED.apk
/system/media/audio/ui/Cam_Start.ogg
/system/media/audio/ui/Cam_Stop.ogg
/system/media/audio/ui/Shutter.ogg


スクリプト同様、改行形式や権限に注意し、また、余計な空白行が入らないようにして下さい。

今回のスクリプトではスクリプトから呼び出すアプリリストのファイル名を"filelist.txt"に固定していますので、このファイル名にしてください。

【使用方法】

スクリプトを登録・実行出来るアプリを使用して下さい。

今回は、GScriptを使用しました。

GScript Lite
https://play.google.com/store/apps/details?id=nl.rogro.GScriptLite

今回のスクリプトでは、スクリプトから呼び出すアプリリストを"/data/tool/filelist.text"としていますので、'"/data/tool/"というフォルダを作成し、スクリプトもアプリリストもその中に置きます。


GScriptに登録します。


スクリプトを走らせると、拡張子が変更され、以下の様な画面が表示されます。


"Done"と表示されたら終了です。念の為、端末を再起動しておきましょう。

ファイラーで確認してみると、ファイルの拡張子が変更されています。


2014/03/15

Toggleでroot/unrootを切り替えるアプリをTaskerで作成


CACHATTOのランチャーを作成したのと類似の手法で、Taskerを使ってroot/unrootをトグルで切り替えるアプリを作成してみました。

root未取得の端末をワンクリックでルート化するツールではなく、既にroot化されている端末のsuやSupaeruser.apkをリネームして一時的にunroot状態にするツールです。

(参考)Taskerを使って一時的にroot権限とUSBデバッグを無効化してアプリを起動する方法(CACHATTO対応)
http://galaxy-shw-m110s.blogspot.kr/2014/03/taskerrootusb.html

CACHATTOのランチャーではUSBデバッグの自動On/Offを行いましたが、このツールではUSBデバッグの設定は変更しません。

【必要な物】

Tasker(有料)
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm

Tasker App Factory(エクステンション)
https://play.google.com/store/apps/details?id=net.dinglisch.android.appfactory

【基本動作】

Taskerで単純なタスクをアプリ化し、以下の動作をワンタッチで行えるようにしました。


ホーム画面にあるアイコンをクリック
=>rooted状態なら、unrootしてポップアップを表示
=>unroot状態なら、root化してポップアップを表示

【アクションの流れ】


1. Run Shell : xsuがあるかどうかを確認します
2. If : xsuがなければ
3. Run Shell : suとSuperuser.apkをリネームして無効にします
4. Popup : "SU removed."と表示します
5. Else : それ以外の場合は
6. Run Shell : suとSuperuser.apkを元の名前に戻します
7. Popup : "Your device is rooted."と表示します
8. End If : 処理を終了します

【設定例】

1. Run Shell : suがあるかどうかを確認します


実際にはリネーム後の"xsu"の有無を確認しています。

2. If : xsuがなければ


xsuが無いことが真ならば、次のアクションに進みます。

3. Run Shell : suとSuperuser.apkをリネームして無効にします


スクリプトは以下のものをエディタで開いてクリップボード経由で貼り付けました。

 
#!/system/bin/sh
if [ -f /system/xbin/su ]; then
 su -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/Superuser.apk ]; then
  su -c "busybox mv /system/app/Superuser.apk /system/app/xsuperuser.apk"
 fi
 su -c "busybox mv /system/xbin/su /system/xbin/xsu"
fi


suとSuperuser.apkが以下のフォルダにあることを前提にしていますので、自分の環境に合わせて修正してください。

/system/xbin/su
/system/app/Superuser.apk

Use Rootは選択しないでください。

Continue Task After Errorは有効にしています。

4. Popup : "SU removed.と表示します


任意のデザイン、コメント、タイムアウトにしてください。

5. Else : それ以外の場合は


xsuが存在する場合の処理です。

6. Run Shell : suとSuperuser.apkを元の名前に戻します


スクリプトは以下のものをエディタで開いてクリップボード経由で貼り付けました。

 
#!/system/bin/sh
if [ -f /system/xbin/xsu ]; then
 xsu -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/xsuperuser.apk ]; then
  xsu -c "busybox mv /system/app/xsuperuser.apk /system/app/Superuser.apk"
 fi
 xsu -c "busybox mv /system/xbin/xsu /system/xbin/su"
fi

Use Rootは選択しないでください。

Continue Task After Errorは有効にしています。

7. Popup : "Your device is rooted."と表示します


任意のデザイン、コメント、タイムアウトにしてください

8. End If : 処理を終了します


【アプリ化】

CACHATTOのランチャーを作成した時同様に、アプリ化します。

Taskerを使って一時的にroot権限とUSBデバッグを無効化してアプリを起動する方法(CACHATTO対応)
http://galaxy-shw-m110s.blogspot.kr/2014/03/taskerrootusb.html

【スクリプトだけで行う方法】

アプリ化ではありませんが、ショートカットを作れるGScriptの様なアプリを使えば、スクリプトだけで同様の動作をさせる事が出来ます。

GScript Lite
https://play.google.com/store/apps/details?id=nl.rogro.GScriptLite


以下のスクリプトを参考にしてみてください。

#!/system/bin/sh
if [ -f /system/xbin/su ]; then
 echo "             SU has been removed.          "
 echo
 echo
 echo
  echo
 echo
 echo
 echo
 echo
 echo
 su -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/Superuser.apk ]; then
  su -c "busybox mv /system/app/Superuser.apk /system/app/xsuperuser.apk"
 fi
 su -c "busybox mv /system/xbin/su /system/xbin/xsu"
# xsu -c 'busybox mount -o remount,ro /system /system'
 exit 0;
elif [ -f /system/xbin/xsu ]; then
 echo "            Your device is rooted.          "
 echo
 echo
  echo
 echo
 echo
 echo
 echo
 echo
 echo
 if [ -f /system/app/xsuperuser.apk ]; then
  xsu -c "busybox mv /system/app/xsuperuser.apk /system/app/Superuser.apk"
 fi
 xsu -c 'busybox mount -o remount,rw /system /system'
 xsu -c "busybox mv /system/xbin/xsu /system/xbin/su"
# su -c 'busybox mount -o remount,ro /system /system'
fi 


2014/03/12

Taskerを使って一時的にroot権限とUSBデバッグを無効化してアプリを起動する方法(CACHATTO対応)


CACHATTOというアプリの導入を検討中なのですが、このアプリは、端末がroot化されていたり、USBデバッグが有効になっていると起動出来ません。

CACHATTO SecureBrowser
https://play.google.com/store/apps/details?id=jp.co.ejan.cachatto.securebrowser2

このアプリを起動する度にSuperuserとUSBデバッグを無効にして、終了後に再度戻すのは面倒ですので、Taskerを使って自動化してみました。

【必要な物】

Tasker(有料)
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm

Secure Settings(プラグイン)
https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin

Tasker App Factory(エクステンション)
https://play.google.com/store/apps/details?id=net.dinglisch.android.appfactory

【基本動作】

Taskerで作ったタスクをアプリ化し、以下の様な動作をワンタッチで行うようにしました。

ホーム画面にあるアイコンをクリックしたら
=>unrootしてUSBデバッグを無効に
=>CACHATTOを起動
CACHATTOを終了したら
=>root化してUSBデバッグを有効に

【アクションの流れ】


1. Popup : タイトルをポップアップします
2. Secure Settings : USBデバッグを無効にします
3. Run Shell : suとSuperuser.apkをリネームして無効にします
4. Load App : CACHATTOを起動します
5. Wait : 5秒待ちます
6. Run Shell : cachattoを含む名のプロセスがフォアグランドにあるか確認します
7. If : フォアグラウンドにあった場合
8. Goto : 5番目のアクションに戻ります
9. End if
10. Wait : 10秒待ちます
11. Run Shell : cachattoを含む名のプロセスがフォアグランドにあるか再度確認します
12. If : フォアグラウンドにある場合
13. Goto : 5番目のアクションに戻ります
14. End If
15. Run Shell : リネームしたsuとSuperuser.apkを元のファイル名に戻します
16. Secure Settings : USBデバッグを有効にします
17. Notify : 再度root化してUSBデバッグを有効にした事を通知します

【設定例】

1. Popup : タイトルをポップアップします


CACHATTOの起動まで少しラグがあり、クリック時に動作しているかどうかが判り難いので、Popupさせます。内容は任意のもので構いません。


タスク一覧を左にスライドさせると右側にPopupのサイズやフォントを設定する画面がありますので好みに合わせて設定してください。

2. Secure Settings : USBデバッグを無効にします


オプションモジュールのSecure Settingsが必要です。

3. Run Shell : suとSuperuser.apkをリネームして無効にします


スクリプトは以下のものをエディタで開いてクリップボード経由で貼り付けました。

 
#!/system/bin/sh
if [ -f /system/xbin/su ]; then
 su -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/Superuser.apk ]; then
  su -c "busybox mv /system/app/Superuser.apk /system/app/xsuperuser.apk"
 fi
 su -c "busybox mv /system/xbin/su /system/xbin/xsu"
fi

suとSuperuser.apkが以下のフォルダにあることを前提にしていますので、自分の環境に合わせて修正してください。

/system/xbin/su
/system/app/Superuser.apk

Use Rootは選択しないでください。

Continue Task After Errorは有効にしています。

4. Load App : CACHATTOを起動します


Exclude From Recent Appsは選択しないでください。
  
Continue Task After Errorは有効にしています。(Prefarenceでbiginner modeをOffにしていないとこの項目は設定されません。)


5. Wait : 5秒待ちます



6. Run Shell : cachattoを含む名のプロセスがフォアグランドにあるか確認します


Store Result Inに戻り値を保存します。

Continue Task After Errorは有効にしています。

7. If : フォアグラウンドにあった場合


フォアグラウンドにない場合は戻り値が1になりますので、戻り値が1でない場合はフォアグラウンドにある事になります。

CACHATTOがフォアグラウンドにある限り、「確認」と「5秒待ち」を繰り返します。

8. Goto : 5番目のアクションに戻ります


9. End if

CACHATTOがフォアグラウンドにない場合はここから先に進みます。

10. Wait : 10秒待ちます


11. Run Shell : cachattoを含む名のプロセスがフォアグランドにあるか再度確認します
12. If : フォアグラウンドにある場合
13. Goto : 5番目のアクションに戻ります
14. End If

11-14番のアクションは6-9番と同じです。

但し、戻り値の名前は変更しています。


一度フォアグラウンドに無いと判断された場合でも、他アプリとマルチタスクでコピペ等をしている場合があるので、再度確認する様にしています。二度目の確認までは待ち時間は倍の10秒にしてあります。

15. Run Shell : リネームしたsuとSuperuser.apkを元のファイル名に戻します

スクリプトは以下のものをエディタで開いてクリップボード経由で貼り付けました。

 
#!/system/bin/sh
if [ -f /system/xbin/xsu ]; then
 xsu -c 'busybox mount -o remount,rw /system /system'
 if [ -f /system/app/xsuperuser.apk ]; then
  xsu -c "busybox mv /system/app/xsuperuser.apk /system/app/Superuser.apk"
 fi
 xsu -c "busybox mv /system/xbin/xsu /system/xbin/su"
fi

Use Rootは選択しないでください。

Continue Task After Errorは有効にしています。

16. Secure Settings : USBデバッグを有効にします



Continue Task After Errorは有効にしています。

17. Notify : 再度root化してUSBデバッグを有効にした事を通知します


タイトルやコメント、アイコンは好みのものにしてください。

Priorityはデフォルトの3のままにしています。

【アプリ化】



作成したタスクはTaskerのタスク一覧からも再生出来ますし、タスクのショートカットをホーム画面に置くことも出来ますが、アプリ化しておくと、Taskerを実行していなくても起動出来ますので便利です。


タスク一覧で該当のタスクを長押しすると右上にメニューボタンが出ますので、それをクリックしてExportを選択します。

XML to SDでバックアップをとっておきましょう。

アプリ化はAs Appから行います。

特にデフォルト値を変更する必要はありませんが、package nameだけは決め事があるので、注意してください。

メールアドレスとパッケージネームの関係は以下です。

mail address : abcd.efgh@google.com
package name : com.google.efgh.abcd.アプリ名


また、アプリのアイコンはタスクのアクション一覧の右下のアイコンをタップすると表示されるメニューから選択出来ます。


その右のスライドメニューの様なアイコンをクリックするとメニューが表示されますので、Abort Existing Taskを選択しておきます。


今回の様にタスクだけを使って常時監視を行わない場合は、タスカーのタスク一覧画面等の左上のタスカーアイコンを長押して無効にしておきましょう。(常時監視を行うとバッテリーを消費します。)