システム設定

FIRERPA の Settings 関連インターフェースを使用して、Android システムの各種パラメータ設定や読み取りを行うことができます。この機能でできることは多岐にわたり、画面の明るさ設定や開発者モードの切り替え、着信音量の調整なども可能です。ここでは簡単な例をいくつか紹介します。

インターフェースの呼び出し

最初に Settings インスタンスを取得する必要があります。次のように呼び出します。

settings = d.stub("Settings")

システム画面の明るさを手動モードに設定します。これにより、画面の明るさが周囲の光に応じて自動的に変わらなくなり、固定の明るさを設定できるようになります。

settings.put_system("screen_brightness_mode", "0")

現在の画面の明るさを取得し、その後明るさを 5 に下げます。

settings.get_system("screen_brightness")
settings.put_system("screen_brightness", "5")

開発者モードが有効かどうかを確認し、その後無効にします。

settings.get_global("development_settings_enabled")
settings.put_global("development_settings_enabled", "0")

スクリーンセーバーが有効かどうかを確認し、その後無効にします。

settings.get_secure("screensaver_enabled")
settings.put_secure("screensaver_enabled", "0")

以下の例では、画面の明るさを手動モードに設定し、明るさを 64 にして、常に画面をオンにします。

settings.put_system("screen_brightness", "64")
settings.put_system("screen_brightness_mode", "1")
settings.put_system("screen_off_timeout", "604800000")

利用可能なパラメータ

screen_brightness のような文字列に疑問をお持ちの方のために、このセクションをご用意しました。このインターフェースで利用可能なパラメータは、完全にシステムが何をサポートしているかに依存します。一部の定数は Android のバージョンによって互換性がない場合があり、またメーカー独自の変数が存在することにも注意してください。以下の Android 公式ドキュメントから関連する利用可能なパラメータを確認し、上記のインターフェースと組み合わせてシステム設定を行うことができます。

豆知識

上記に公式で定義されている利用可能なフィールドを列挙しますが、実際のシステムで利用可能なフィールドはこれらに留まりません。settings list [system|global|secure] コマンドを使用して、各カテゴリに実際にどのような設定項目が存在するかを確認できます。

公式ドキュメント

分類リンク
グローバルシステム設定(Global Settings)。すべてのユーザーがアクセス可能なシステムレベルの環境設定を含むhttps://developer.android.com/reference/android/provider/Settings.Global
システム設定(System Settings)。主に着信音や明るさなどデバイスに関連する、歴史的なシステム環境設定を含むhttps://developer.android.com/reference/android/provider/Settings.System
セキュア設定(Secure Settings)。プライバシーとセキュリティに関連するシステム設定を含むhttps://developer.android.com/reference/android/provider/Settings.Secure

Global

フィールド名(小文字)説明追加バージョン削除バージョン
adb_enabledintUSB を介した ADB(Android デバッグブリッジ)が有効かどうか。17
airplane_mode_onint機内モードが有効かどうか。17
airplane_mode_radiosstring機内モードが有効なときに無効にするラジオのリスト(カンマ区切り)。17
always_finish_activitiesint0 でない場合、アクティビティマネージャーは不要になり次第アクティビティやプロセスを即座に終了します。0 の場合は通常の延長ライフサイクルを使用します。17
animator_duration_scalefloatAnimator ベースのアニメーションのスケーリング係数。17
apply_ramping_ringerint着信音に段階的に音量を上げるかどうか。2933
auto_timeintデバイスの UTC システムクロックを自動的に設定するかどうか(NITZ などのセルラー信号や他のソースを使用)。17
auto_time_zoneintデバイスのタイムゾーンシステムプロパティを自動的に設定するかどうか(MCC、NITZ などのセルラー信号や位置情報などのメカニズムを使用)。17
bluetooth_onintBluetooth が有効かどうか(0=無効、1=有効)。17
boot_countintAPI レベル 24 以降でデバイスが起動した回数。24
contact_metadata_sync_enabledint連絡先メタデータ同期が有効かどうか(1=有効、0=無効)。24
data_roamingintデータローミングが有効かどうか(0=いいえ、1=はい)。17
debug_appstringデバッグするアプリのパッケージ名。17
development_settings_enabledintユーザーが開発者向けオプションを有効にしたかどうか(0=いいえ、1=はい)。17
device_namestringデバイス名。25
device_provisionedintデバイスのプロビジョニングが完了しているかどうか(0=いいえ、1=はい)。17
http_proxystringグローバル HTTP プロキシのホスト名とポート(コロン区切り)。17
install_non_market_appsintマーケット以外のアプリのインストールを許可するかどうか。1721
mode_ringerint着信モード(内部使用。この値を変更しても実際の着信モードは変わりません。AudioManager を参照)。17
network_preferenceintどのネットワークを使用するかに関するユーザー設定(接続サービスのみ変更可能)。17
radio_bluetoothstring機内モードまたはサテライトモードのラジオリストで Bluetooth ラジオを指定するための定数。17
radio_cellstring機内モードのラジオリストでセルラーラジオを指定するための定数。17
radio_nfcstring機内モードまたはサテライトモードのラジオリストで NFC ラジオを指定するための定数。17
radio_wifistring機内モードまたはサテライトモードのラジオリストで Wi‑Fi ラジオを指定するための定数。17
secure_frp_modeintデバイスが制限付きのセキュア FRP(出荷時リセット保護)モードにあるかどうかを示します。34
show_processesintプロセスの CPU 使用率メーターを表示するかどうかを制御します。1725
stay_on_while_plugged_inintデバイスが電源に接続されているときにスリープしないようにするかどうか(AC、USB、ワイヤレス、ドック充電器の組み合わせ可能な値)。17
transition_animation_scalefloatアクティビティ遷移アニメーションのスケーリング係数。17
usb_mass_storage_enabledintUSB マスストレージが有効かどうか。17
use_google_mailintこの設定が(任意の値で)設定されている場合、デバイス上の Gmail へのすべての参照を Google Mail に変更する必要があります。17
wait_for_debuggerint1 の場合、DEBUG_APP を起動する際にデバッガーが接続するまでユーザーコードの実行を待機します。0 の場合は通常通り起動します。17
wifi_device_owner_configs_lockdownintデバイス所有者アプリによって作成された Wi‑Fi 設定をロックするかどうかを制御します(デバイス所有者アプリのみ編集または削除可能)。23
wifi_max_dhcp_retry_countintDHCP IP アドレスの取得に失敗した後、アクセスポイントへの接続を再試行する最大回数(N は合計試行回数 N+1 を意味します)。17
wifi_mobile_data_transition_wakelock_timeout_msintWi‑Fi 切断後、モバイルデータ接続の確立を待つ間、ウェイクロックを保持する最大ミリ秒数。17
wifi_networks_available_notification_onintオープンネットワークが利用可能な場合にユーザーに通知するかどうか。1726
wifi_networks_available_repeat_delayintWi‑Fi 利用可能ネットワーク通知を繰り返し表示する遅延時間(秒)。1730
wifi_num_open_networks_keptintオープンネットワーク数がこの値を超えると、最も最近使用されていない余分なネットワークが削除されます。1730
wifi_onintWi‑Fi を有効にするかどうか(Wi‑Fi サービスのみ変更可能)。17
wifi_sleep_policyintWi‑Fi が休止状態に入るタイミングを決定するポリシー。1730
wifi_sleep_policy_defaultintデフォルトの Wi‑Fi 休止ポリシーを使用する値(STAY_ON_WHILE_PLUGGED_IN 設定に基づく)。1730
wifi_sleep_policy_neverint休止状態に決して入らない値。1730
wifi_sleep_policy_never_while_pluggedintバッテリー駆動時はデフォルトポリシー、電源接続時は休止しない値。1730
wifi_watchdog_onintWi‑Fi ウォッチドッグが有効かどうか。17
window_animation_scalefloat通常のウィンドウアニメーションのスケーリング係数。17

System

フィールド名(小文字)説明追加バージョン削除バージョン
accelerometer_rotationint加速度センサーを使用した画面の自動回転を制御します(0=無効、1=有効)3
alarm_alertstringシステムのデフォルトアラーム着信音の URI5
bluetooth_discoverabilityintBluetooth の検出可能性設定(2=検出可能かつ接続可能、1=接続可能だが検出不可能、0=両方とも不可)1
bluetooth_discoverability_timeoutintBluetooth の検出可能状態のタイムアウト(秒)1
date_formatstring日付形式(非推奨、使用されていません)131
dtmf_toneintダイヤル時に DTMF トーンを再生するかどうか(1=はい、0=いいえ)1
dtmf_tone_typeintCDMA ダイヤル時の DTMF トーンタイプ(0=通常、1=長音)23
end_button_behaviorint通話中でない場合の終了ボタンの動作(0=何もしない、1=ホーム画面に戻る、2=スリープ・ロック、3=ホーム画面に戻るかスリープ)1
font_scalefloatフォントのスケーリング係数1
haptic_feedback_enabledint触覚フィードバックが有効かどうか(タップ時の振動、1=有効、0=無効)333
mode_ringer_streams_affectedint着信モードの影響を受けるオーディオストリームのビットマスク1
mute_streams_affectedintミュートの影響を受けるオーディオストリームのビットマスク1
notification_soundstringシステムのデフォルト通知着信音の URI1
ringtonestringシステムのデフォルト着信音の URI1
screen_brightnessint画面の明るさ(1~255)1
screen_brightness_modeint明るさモード(0=手動、1=自動)8
screen_off_timeoutint画面がスリープするまでのタイムアウト(ミリ秒)1
setup_wizard_has_runintセットアップウィザードが実行されたかどうか(0以外は実行済み)1
show_gtalk_service_statusintGTalk サービスのステータスを表示するかどうか1
sound_effects_enabledintサウンドエフェクトが有効かどうか(キー押下音など、1=有効)1
text_auto_capsintテキストエディタで自動大文字にするかどうか(1=オン)1
text_auto_punctuateintテキストエディタで自動句読点を付けるかどうか(1=オン)1
text_auto_replaceintテキストエディタで自動置換するかどうか(1=オン)1
text_show_passwordintテキストエディタでパスワード文字を表示するかどうか(1=表示)1
time_12_24string時刻表示形式("12" または "24"、未設定の場合はロケールのデフォルト)1
user_rotationintデフォルトの画面回転角度(Surface 回転定数)11
vibrate_onint振動が有効かどうか(内部使用。実際の振動は AudioManager で制御されます)1
vibrate_when_ringingint着信時に振動するかどうか(1=振動、0=振動しない)2333

Secure

フィールド名(小文字)説明追加バージョン削除バージョン
accessibility_display_inversion_enabledint表示色反転が有効かどうか。21
accessibility_enabledintアクセシビリティ機能が有効かどうか。4
accessibility_speak_passwordintアクセシビリティモードでパスワードを読み上げるかどうか(非推奨、各アクセシビリティサービスで制御)。1526
allowed_geolocation_originsstringブラウザがデフォルトで位置情報を許可するオリジンのリスト(スペース区切り)。8
allow_mock_locationintモック位置情報を許可するかどうか(非推奨、使用されていません)。323
android_idstringデバイス固有の Android ID(64 ビットの 16 進文字列、Android 8.0+ でスコープが変更)。3
default_input_methodstring現在のデフォルト入力メソッドのコンポーネント名(ComponentName のフラット化文字列)。3
enabled_accessibility_servicesstring有効になっているアクセシビリティサービスのリスト(文字列形式)。4
enabled_input_methodsstring有効になっている入力メソッドのリスト(コロン区切り、サブタイプを含む形式)。3
input_method_selector_visibilityint入力メソッドセレクターの可視性の記録。11
install_non_market_appsintマーケット以外のアプリのインストールを許可するかどうか(1=許可、0=禁止。API 26+ では PackageManager.canRequestPackageInstalls() を使用すべき)。326
location_modeint現在の位置情報モード(整数値。API 28+ では LocationManager.isLocationEnabled() の使用が推奨)。1928
lock_pattern_enabledintロック画面パターンが有効かどうか(0=いいえ、1=はい。API 23+ では KeyguardManager の使用を推奨)。823
lock_pattern_visibleintロック画面パターンの線を表示するかどうか(0=いいえ、1=はい。API 23+ で読み取ると SecurityException がスローされます)。823
parental_control_enabledintペアレンタルコントロールが有効かどうか(現在サポートされていません)。3
parental_control_last_updatestringペアレンタルコントロールの最終更新日時(現在サポートされていません)。3
parental_control_redirect_urlstringペアレンタルコントロールのリダイレクト URL(現在サポートされていません)。3
rtt_calling_modeintRTT 通話モードが有効かどうか(0=オフ、1=オン)。28
secure_frp_modeint制限付きの FRP(出荷時リセット保護)モードかどうか(0=いいえ、1=はい)。3034
selected_input_method_subtypestring選択されている入力メソッドのサブタイプ ID。11
settings_classnamestring設定アプリのクラス名。3
skip_first_use_hintsint初回使用時のヒントをスキップするかどうか(0=ヒント表示、1=スキップ)。21
touch_exploration_enabledintタッチ探索(アクセシビリティ機能)が有効かどうか。14
tts_default_pitchintデフォルトの TTS ピッチ(100 = 1 倍)。4
tts_default_rateintデフォルトの TTS 速度(100 = 1 倍)。4
tts_default_synthstringデフォルトの TTS エンジン(パッケージ名)。4
tts_enabled_pluginsstring有効になっている TTS プラグインのリスト(スペース区切り)。8