システム設定¶
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_enabled | int | USB を介した ADB(Android デバッグブリッジ)が有効かどうか。 | 17 | |
| airplane_mode_on | int | 機内モードが有効かどうか。 | 17 | |
| airplane_mode_radios | string | 機内モードが有効なときに無効にするラジオのリスト(カンマ区切り)。 | 17 | |
| always_finish_activities | int | 0 でない場合、アクティビティマネージャーは不要になり次第アクティビティやプロセスを即座に終了します。0 の場合は通常の延長ライフサイクルを使用します。 | 17 | |
| animator_duration_scale | float | Animator ベースのアニメーションのスケーリング係数。 | 17 | |
| apply_ramping_ringer | int | 着信音に段階的に音量を上げるかどうか。 | 29 | 33 |
| auto_time | int | デバイスの UTC システムクロックを自動的に設定するかどうか(NITZ などのセルラー信号や他のソースを使用)。 | 17 | |
| auto_time_zone | int | デバイスのタイムゾーンシステムプロパティを自動的に設定するかどうか(MCC、NITZ などのセルラー信号や位置情報などのメカニズムを使用)。 | 17 | |
| bluetooth_on | int | Bluetooth が有効かどうか(0=無効、1=有効)。 | 17 | |
| boot_count | int | API レベル 24 以降でデバイスが起動した回数。 | 24 | |
| contact_metadata_sync_enabled | int | 連絡先メタデータ同期が有効かどうか(1=有効、0=無効)。 | 24 | |
| data_roaming | int | データローミングが有効かどうか(0=いいえ、1=はい)。 | 17 | |
| debug_app | string | デバッグするアプリのパッケージ名。 | 17 | |
| development_settings_enabled | int | ユーザーが開発者向けオプションを有効にしたかどうか(0=いいえ、1=はい)。 | 17 | |
| device_name | string | デバイス名。 | 25 | |
| device_provisioned | int | デバイスのプロビジョニングが完了しているかどうか(0=いいえ、1=はい)。 | 17 | |
| http_proxy | string | グローバル HTTP プロキシのホスト名とポート(コロン区切り)。 | 17 | |
| install_non_market_apps | int | マーケット以外のアプリのインストールを許可するかどうか。 | 17 | 21 |
| mode_ringer | int | 着信モード(内部使用。この値を変更しても実際の着信モードは変わりません。AudioManager を参照)。 | 17 | |
| network_preference | int | どのネットワークを使用するかに関するユーザー設定(接続サービスのみ変更可能)。 | 17 | |
| radio_bluetooth | string | 機内モードまたはサテライトモードのラジオリストで Bluetooth ラジオを指定するための定数。 | 17 | |
| radio_cell | string | 機内モードのラジオリストでセルラーラジオを指定するための定数。 | 17 | |
| radio_nfc | string | 機内モードまたはサテライトモードのラジオリストで NFC ラジオを指定するための定数。 | 17 | |
| radio_wifi | string | 機内モードまたはサテライトモードのラジオリストで Wi‑Fi ラジオを指定するための定数。 | 17 | |
| secure_frp_mode | int | デバイスが制限付きのセキュア FRP(出荷時リセット保護)モードにあるかどうかを示します。 | 34 | |
| show_processes | int | プロセスの CPU 使用率メーターを表示するかどうかを制御します。 | 17 | 25 |
| stay_on_while_plugged_in | int | デバイスが電源に接続されているときにスリープしないようにするかどうか(AC、USB、ワイヤレス、ドック充電器の組み合わせ可能な値)。 | 17 | |
| transition_animation_scale | float | アクティビティ遷移アニメーションのスケーリング係数。 | 17 | |
| usb_mass_storage_enabled | int | USB マスストレージが有効かどうか。 | 17 | |
| use_google_mail | int | この設定が(任意の値で)設定されている場合、デバイス上の Gmail へのすべての参照を Google Mail に変更する必要があります。 | 17 | |
| wait_for_debugger | int | 1 の場合、DEBUG_APP を起動する際にデバッガーが接続するまでユーザーコードの実行を待機します。0 の場合は通常通り起動します。 | 17 | |
| wifi_device_owner_configs_lockdown | int | デバイス所有者アプリによって作成された Wi‑Fi 設定をロックするかどうかを制御します(デバイス所有者アプリのみ編集または削除可能)。 | 23 | |
| wifi_max_dhcp_retry_count | int | DHCP IP アドレスの取得に失敗した後、アクセスポイントへの接続を再試行する最大回数(N は合計試行回数 N+1 を意味します)。 | 17 | |
| wifi_mobile_data_transition_wakelock_timeout_ms | int | Wi‑Fi 切断後、モバイルデータ接続の確立を待つ間、ウェイクロックを保持する最大ミリ秒数。 | 17 | |
| wifi_networks_available_notification_on | int | オープンネットワークが利用可能な場合にユーザーに通知するかどうか。 | 17 | 26 |
| wifi_networks_available_repeat_delay | int | Wi‑Fi 利用可能ネットワーク通知を繰り返し表示する遅延時間(秒)。 | 17 | 30 |
| wifi_num_open_networks_kept | int | オープンネットワーク数がこの値を超えると、最も最近使用されていない余分なネットワークが削除されます。 | 17 | 30 |
| wifi_on | int | Wi‑Fi を有効にするかどうか(Wi‑Fi サービスのみ変更可能)。 | 17 | |
| wifi_sleep_policy | int | Wi‑Fi が休止状態に入るタイミングを決定するポリシー。 | 17 | 30 |
| wifi_sleep_policy_default | int | デフォルトの Wi‑Fi 休止ポリシーを使用する値(STAY_ON_WHILE_PLUGGED_IN 設定に基づく)。 | 17 | 30 |
| wifi_sleep_policy_never | int | 休止状態に決して入らない値。 | 17 | 30 |
| wifi_sleep_policy_never_while_plugged | int | バッテリー駆動時はデフォルトポリシー、電源接続時は休止しない値。 | 17 | 30 |
| wifi_watchdog_on | int | Wi‑Fi ウォッチドッグが有効かどうか。 | 17 | |
| window_animation_scale | float | 通常のウィンドウアニメーションのスケーリング係数。 | 17 |
System¶
| フィールド名(小文字) | 型 | 説明 | 追加バージョン | 削除バージョン |
|---|---|---|---|---|
| accelerometer_rotation | int | 加速度センサーを使用した画面の自動回転を制御します(0=無効、1=有効) | 3 | |
| alarm_alert | string | システムのデフォルトアラーム着信音の URI | 5 | |
| bluetooth_discoverability | int | Bluetooth の検出可能性設定(2=検出可能かつ接続可能、1=接続可能だが検出不可能、0=両方とも不可) | 1 | |
| bluetooth_discoverability_timeout | int | Bluetooth の検出可能状態のタイムアウト(秒) | 1 | |
| date_format | string | 日付形式(非推奨、使用されていません) | 1 | 31 |
| dtmf_tone | int | ダイヤル時に DTMF トーンを再生するかどうか(1=はい、0=いいえ) | 1 | |
| dtmf_tone_type | int | CDMA ダイヤル時の DTMF トーンタイプ(0=通常、1=長音) | 23 | |
| end_button_behavior | int | 通話中でない場合の終了ボタンの動作(0=何もしない、1=ホーム画面に戻る、2=スリープ・ロック、3=ホーム画面に戻るかスリープ) | 1 | |
| font_scale | float | フォントのスケーリング係数 | 1 | |
| haptic_feedback_enabled | int | 触覚フィードバックが有効かどうか(タップ時の振動、1=有効、0=無効) | 3 | 33 |
| mode_ringer_streams_affected | int | 着信モードの影響を受けるオーディオストリームのビットマスク | 1 | |
| mute_streams_affected | int | ミュートの影響を受けるオーディオストリームのビットマスク | 1 | |
| notification_sound | string | システムのデフォルト通知着信音の URI | 1 | |
| ringtone | string | システムのデフォルト着信音の URI | 1 | |
| screen_brightness | int | 画面の明るさ(1~255) | 1 | |
| screen_brightness_mode | int | 明るさモード(0=手動、1=自動) | 8 | |
| screen_off_timeout | int | 画面がスリープするまでのタイムアウト(ミリ秒) | 1 | |
| setup_wizard_has_run | int | セットアップウィザードが実行されたかどうか(0以外は実行済み) | 1 | |
| show_gtalk_service_status | int | GTalk サービスのステータスを表示するかどうか | 1 | |
| sound_effects_enabled | int | サウンドエフェクトが有効かどうか(キー押下音など、1=有効) | 1 | |
| text_auto_caps | int | テキストエディタで自動大文字にするかどうか(1=オン) | 1 | |
| text_auto_punctuate | int | テキストエディタで自動句読点を付けるかどうか(1=オン) | 1 | |
| text_auto_replace | int | テキストエディタで自動置換するかどうか(1=オン) | 1 | |
| text_show_password | int | テキストエディタでパスワード文字を表示するかどうか(1=表示) | 1 | |
| time_12_24 | string | 時刻表示形式("12" または "24"、未設定の場合はロケールのデフォルト) | 1 | |
| user_rotation | int | デフォルトの画面回転角度(Surface 回転定数) | 11 | |
| vibrate_on | int | 振動が有効かどうか(内部使用。実際の振動は AudioManager で制御されます) | 1 | |
| vibrate_when_ringing | int | 着信時に振動するかどうか(1=振動、0=振動しない) | 23 | 33 |
Secure¶
| フィールド名(小文字) | 型 | 説明 | 追加バージョン | 削除バージョン |
|---|---|---|---|---|
| accessibility_display_inversion_enabled | int | 表示色反転が有効かどうか。 | 21 | |
| accessibility_enabled | int | アクセシビリティ機能が有効かどうか。 | 4 | |
| accessibility_speak_password | int | アクセシビリティモードでパスワードを読み上げるかどうか(非推奨、各アクセシビリティサービスで制御)。 | 15 | 26 |
| allowed_geolocation_origins | string | ブラウザがデフォルトで位置情報を許可するオリジンのリスト(スペース区切り)。 | 8 | |
| allow_mock_location | int | モック位置情報を許可するかどうか(非推奨、使用されていません)。 | 3 | 23 |
| android_id | string | デバイス固有の Android ID(64 ビットの 16 進文字列、Android 8.0+ でスコープが変更)。 | 3 | |
| default_input_method | string | 現在のデフォルト入力メソッドのコンポーネント名(ComponentName のフラット化文字列)。 | 3 | |
| enabled_accessibility_services | string | 有効になっているアクセシビリティサービスのリスト(文字列形式)。 | 4 | |
| enabled_input_methods | string | 有効になっている入力メソッドのリスト(コロン区切り、サブタイプを含む形式)。 | 3 | |
| input_method_selector_visibility | int | 入力メソッドセレクターの可視性の記録。 | 11 | |
| install_non_market_apps | int | マーケット以外のアプリのインストールを許可するかどうか(1=許可、0=禁止。API 26+ では PackageManager.canRequestPackageInstalls() を使用すべき)。 | 3 | 26 |
| location_mode | int | 現在の位置情報モード(整数値。API 28+ では LocationManager.isLocationEnabled() の使用が推奨)。 | 19 | 28 |
| lock_pattern_enabled | int | ロック画面パターンが有効かどうか(0=いいえ、1=はい。API 23+ では KeyguardManager の使用を推奨)。 | 8 | 23 |
| lock_pattern_visible | int | ロック画面パターンの線を表示するかどうか(0=いいえ、1=はい。API 23+ で読み取ると SecurityException がスローされます)。 | 8 | 23 |
| parental_control_enabled | int | ペアレンタルコントロールが有効かどうか(現在サポートされていません)。 | 3 | |
| parental_control_last_update | string | ペアレンタルコントロールの最終更新日時(現在サポートされていません)。 | 3 | |
| parental_control_redirect_url | string | ペアレンタルコントロールのリダイレクト URL(現在サポートされていません)。 | 3 | |
| rtt_calling_mode | int | RTT 通話モードが有効かどうか(0=オフ、1=オン)。 | 28 | |
| secure_frp_mode | int | 制限付きの FRP(出荷時リセット保護)モードかどうか(0=いいえ、1=はい)。 | 30 | 34 |
| selected_input_method_subtype | string | 選択されている入力メソッドのサブタイプ ID。 | 11 | |
| settings_classname | string | 設定アプリのクラス名。 | 3 | |
| skip_first_use_hints | int | 初回使用時のヒントをスキップするかどうか(0=ヒント表示、1=スキップ)。 | 21 | |
| touch_exploration_enabled | int | タッチ探索(アクセシビリティ機能)が有効かどうか。 | 14 | |
| tts_default_pitch | int | デフォルトの TTS ピッチ(100 = 1 倍)。 | 4 | |
| tts_default_rate | int | デフォルトの TTS 速度(100 = 1 倍)。 | 4 | |
| tts_default_synth | string | デフォルトの TTS エンジン(パッケージ名)。 | 4 | |
| tts_enabled_plugins | string | 有効になっている TTS プラグインのリスト(スペース区切り)。 | 8 |