Add new API for unattended reboot.
Details of the feature are available at: go/pin-after-ota CTS-Coverage-Bug: 179310594 Bug: 160784387 Test: manual Change-Id: I59b7ff7afec9846a114ee8d20f14d22cf69f0680
This commit is contained in:
@@ -40334,6 +40334,7 @@ package android.telephony {
|
||||
field public static final String KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL = "simplified_network_settings_bool";
|
||||
field public static final String KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL = "sim_network_unlock_allow_dismiss_bool";
|
||||
field public static final String KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL = "sms_requires_destination_number_conversion_bool";
|
||||
field public static final String KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL = "store_sim_pin_for_unattended_reboot_bool";
|
||||
field public static final String KEY_SUPPORTS_CALL_COMPOSER_BOOL = "supports_call_composer_bool";
|
||||
field public static final String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL = "support_3gpp_call_forwarding_while_roaming_bool";
|
||||
field public static final String KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL = "support_add_conference_participants_bool";
|
||||
|
||||
@@ -11869,6 +11869,7 @@ package android.telephony {
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean matchesCurrentSimOperator(@NonNull String, int, @Nullable String);
|
||||
method public boolean needsOtaServiceProvisioning();
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
|
||||
method @RequiresPermission(android.Manifest.permission.REBOOT) public int prepareForUnattendedReboot();
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
|
||||
@@ -11993,6 +11994,9 @@ package android.telephony {
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3
|
||||
field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1
|
||||
field public static final int PREPARE_UNATTENDED_REBOOT_ERROR = 2; // 0x2
|
||||
field public static final int PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED = 1; // 0x1
|
||||
field public static final int PREPARE_UNATTENDED_REBOOT_SUCCESS = 0; // 0x0
|
||||
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
||||
field public static final int RADIO_POWER_ON = 1; // 0x1
|
||||
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
||||
|
||||
@@ -4707,4 +4707,10 @@
|
||||
|
||||
<!-- Whether to select voice/data/sms preference without user confirmation -->
|
||||
<bool name="config_voice_data_sms_auto_fallback">false</bool>
|
||||
|
||||
<!-- Whether to enable the one-handed keyguard on the lock screen for wide-screen devices. -->
|
||||
<bool name="config_enableOneHandedKeyguard">false</bool>
|
||||
|
||||
<!-- Whether to allow the caching of the SIM PIN for verification after unattended reboot -->
|
||||
<bool name="config_allow_pin_storage_for_unattended_reboot">true</bool>
|
||||
</resources>
|
||||
|
||||
@@ -2647,6 +2647,7 @@
|
||||
<java-symbol type="bool" name="config_defaultWindowFeatureContextMenu" />
|
||||
<java-symbol type="bool" name="config_overrideRemoteViewsActivityTransition" />
|
||||
<java-symbol type="attr" name="colorProgressBackgroundNormal" />
|
||||
<java-symbol type="bool" name="config_allow_pin_storage_for_unattended_reboot" />
|
||||
|
||||
<java-symbol type="layout" name="simple_account_item" />
|
||||
<java-symbol type="string" name="prohibit_manual_network_selection_in_gobal_mode" />
|
||||
|
||||
@@ -4748,6 +4748,21 @@ public class CarrierConfigManager {
|
||||
public static final String KEY_NETWORK_TEMP_NOT_METERED_SUPPORTED_BOOL =
|
||||
"network_temp_not_metered_supported_bool";
|
||||
|
||||
/*
|
||||
* Boolean indicating whether the SIM PIN can be stored and verified
|
||||
* seamlessly after an unattended reboot.
|
||||
*
|
||||
* The device configuration value {@code config_allow_pin_storage_for_unattended_reboot}
|
||||
* ultimately controls whether this carrier configuration option is used. Where
|
||||
* {@code config_allow_pin_storage_for_unattended_reboot} is false, the value of the
|
||||
* {@link #KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL} carrier configuration option is
|
||||
* ignored.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static final String KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL =
|
||||
"store_sim_pin_for_unattended_reboot_bool";
|
||||
|
||||
/** The default value for every variable. */
|
||||
private final static PersistableBundle sDefaults;
|
||||
|
||||
@@ -5304,6 +5319,7 @@ public class CarrierConfigManager {
|
||||
sDefaults.putBoolean(KEY_USE_ACS_FOR_RCS_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_NETWORK_TEMP_NOT_METERED_SUPPORTED_BOOL, true);
|
||||
sDefaults.putInt(KEY_DEFAULT_RTT_MODE_INT, 0);
|
||||
sDefaults.putBoolean(KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14994,6 +14994,7 @@ public class TelephonyManager {
|
||||
}
|
||||
return THERMAL_MITIGATION_RESULT_UNKNOWN_ERROR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a listener object to receive notification of changes
|
||||
* in specified telephony states.
|
||||
@@ -15350,4 +15351,66 @@ public class TelephonyManager {
|
||||
return PhoneCapability.DEFAULT_SSSS_CAPABILITY;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The unattended reboot was prepared successfully.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int PREPARE_UNATTENDED_REBOOT_SUCCESS = 0;
|
||||
|
||||
/**
|
||||
* The unattended reboot was prepared, but the user will need to manually
|
||||
* enter the PIN code of at least one SIM card present in the device.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED = 1;
|
||||
|
||||
/**
|
||||
* The unattended reboot was not prepared due to generic error.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int PREPARE_UNATTENDED_REBOOT_ERROR = 2;
|
||||
|
||||
/** @hide */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(prefix = {"PREPARE_UNATTENDED_REBOOT_"},
|
||||
value = {
|
||||
PREPARE_UNATTENDED_REBOOT_SUCCESS,
|
||||
PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED,
|
||||
PREPARE_UNATTENDED_REBOOT_ERROR
|
||||
})
|
||||
public @interface PrepareUnattendedRebootResult {}
|
||||
|
||||
/**
|
||||
* Prepare TelephonyManager for an unattended reboot. The reboot is required to be done
|
||||
* shortly (e.g. within 15 seconds) after the API is invoked.
|
||||
*
|
||||
* <p>Requires Permission:
|
||||
* {@link android.Manifest.permission#REBOOT}
|
||||
*
|
||||
* @return {@link #PREPARE_UNATTENDED_REBOOT_SUCCESS} in case of success.
|
||||
* {@link #PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED} if the device contains
|
||||
* at least one SIM card for which the user needs to manually enter the PIN
|
||||
* code after the reboot. {@link #PREPARE_UNATTENDED_REBOOT_ERROR} in case
|
||||
* of error.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.REBOOT)
|
||||
@PrepareUnattendedRebootResult
|
||||
public int prepareForUnattendedReboot() {
|
||||
try {
|
||||
ITelephony service = getITelephony();
|
||||
if (service != null) {
|
||||
return service.prepareForUnattendedReboot();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Telephony#prepareForUnattendedReboot RemoteException", e);
|
||||
e.rethrowFromSystemServer();
|
||||
}
|
||||
return PREPARE_UNATTENDED_REBOOT_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2387,4 +2387,18 @@ interface ITelephony {
|
||||
* Gets the current phone capability.
|
||||
*/
|
||||
PhoneCapability getPhoneCapability();
|
||||
|
||||
/**
|
||||
* Prepare TelephonyManager for an unattended reboot. The reboot is
|
||||
* required to be done shortly after the API is invoked.
|
||||
*
|
||||
* Requires system privileges.
|
||||
*
|
||||
* @return {@link #PREPARE_UNATTENDED_REBOOT_SUCCESS} in case of success.
|
||||
* {@link #PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED} if the device contains
|
||||
* at least one SIM card for which the user needs to manually enter the PIN
|
||||
* code after the reboot. {@link #PREPARE_UNATTENDED_REBOOT_ERROR} in case
|
||||
* of error.
|
||||
*/
|
||||
int prepareForUnattendedReboot();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user