20140312 potatotips no5

16
【第5回】potatotips (iOS/Android開発Tips共有会)

Upload: tkawashita

Post on 24-Jun-2015

207 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 20140312 potatotips no5

【第5回】potatotips (iOS/Android開発Tips共有会)

Page 2: 20140312 potatotips no5

「開発者向けオプション」の 削除

お題目

Page 3: 20140312 potatotips no5

開発者オプション Developer Option

• 4.2からデフォルトでメニューが非表示 – 端末情報→ビルド番号を7

回タップ • ADB USB デバッグ ON • ランタイムを選択

– Dalvik or ART • タップを表示 • レイアウト境界を表示 • CPU利用状況を表示 • GPU表示の更新を表示 • 厳格モードを有効

Page 4: 20140312 potatotips no5

Android 4.2 公式サイトで紹介

• http://developer.android.com/about/versions/jelly-bean.html

• On devices running Android 4.2, developer options are hidden by default, helping to create a better experience for users. You can reveal the developer options at any time by tapping 7 times on Settings > About phone > Build number on any compatible Android device.

Page 5: 20140312 potatotips no5

問題

• 端末を開発者以外の人に渡せない – USBメモリの代替 – 写真の受け渡し

開発者向けオプションの 項目表示を削除したい

Page 6: 20140312 potatotips no5

現状分析

• 設定アプリのソースコード調査 – 「設定アプリ」->「端末情報」->「ビルド番号」

• 設定アプリのパッケージ名 – com.android.settings.Settings

• 「端末情報」のソースコード – DeviceInfoSettings.java

https://sites.google.com/site/devcollaboration/codesearch

Page 7: 20140312 potatotips no5

設定アプリのソースコード調査(1/3)

• http://tools.oesf.biz/android-4.2.0_r1.0/xref/packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

static final int TAPS_TO_BE_A_DEVELOPER = 7;

@Override public void onResume() { super.onResume(); mDevHitCountdown = getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, Context.MODE_PRIVATE).getBoolean(DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals("eng")) ? -1 : TAPS_TO_BE_A_DEVELOPER; mDevHitToast = null; }

Page 8: 20140312 potatotips no5

設定アプリのソースコード調査(2/3)

• http://tools.oesf.biz/android-4.2.0_r1.0/xref/packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

mDevHitCountdown が 0 になると、Preference に保存

} else if (preference.getKey().equals(KEY_BUILD_NUMBER)) { if (mDevHitCountdown > 0) { mDevHitCountdown--; if (mDevHitCountdown == 0) { getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, Context.MODE_PRIVATE).edit().putBoolean( DevelopmentSettings.PREF_SHOW, true).apply();

Page 9: 20140312 potatotips no5

設定アプリのソースコード調査(3/3)

• Preference に利用されている定数調査 – DevelopmentSettings.PREF_FILE – DevelopmentSettings.PREF_SHOW

• http://tools.oesf.biz/android-4.2.0_r1.0/xref/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java

public static final String PREF_FILE = "development"; public static final String PREF_SHOW = "show";

Page 10: 20140312 potatotips no5

設定アプリのPreference

• /data/data/com.android.settings/shared_prefs/development.xml

<!--?xml version='1.0' encoding='utf-8' standalone='yes' ?--> <map> <boolean name="show" value="true"> </boolean></map>

要 root

Page 11: 20140312 potatotips no5

設定アプリのPreferenceから削除

C:¥>adb shell shell@android:/ $ su su root@android:/ # cd /data/data/com.android.settings/shared_prefs cd /data/data/com.android.settings/shared_prefs root@android:/data/data/com.android.settings/shared_prefs # cat development.xml <!--?xml version='1.0' encoding='utf-8' standalone='yes' ?--> <map> <boolean name="show" value="true"> </boolean></map> root@android:/data/data/com.android.settings/shared_prefs # rm development.xml

要 root

Page 12: 20140312 potatotips no5

GGRKS

Page 13: 20140312 potatotips no5

既出・・・

Page 14: 20140312 potatotips no5

スマートな?削除方法

不要 root

Page 15: 20140312 potatotips no5

設定アプリの他の設定を削除することなく、 「開発者向けオプション」だけを削除する方法(要root)

題目変更

/data/data/com.android.settings/shared_prefs/development.xml

<!--?xml version='1.0' encoding='utf-8' standalone='yes' ?--> <map> <boolean name="show" value="true"> </boolean></map>

“false” やこの項目だけを削除 要 root

Page 16: 20140312 potatotips no5

ご清聴ありがとうござました