Revert "Revert "[eSIM BootStrap Support] Upgrade TelephonyProvid..."
Revert submission 25285161-revert-24820655-esim_profile_support_v1.0-APHOXMVQGQ
Reason for revert: With CTS issue fix
Reverted changes: Updated Teelephony Provider changes for adding new field at
Apn configuration
Bug: 309633531
Test: atest CtsTelephonyTestCases
Change-Id: I16ad221b5403405a7a0beef52abbc241396b3bbb
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 23a0a19..c572357 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -33,6 +33,7 @@
import static android.provider.Telephony.Carriers.DEFAULT_SORT_ORDER;
import static android.provider.Telephony.Carriers.EDITED_STATUS;
import static android.provider.Telephony.Carriers.INFRASTRUCTURE_BITMASK;
+import static android.provider.Telephony.Carriers.ESIM_BOOTSTRAP_PROVISIONING;
import static android.provider.Telephony.Carriers.LINGERING_NETWORK_TYPE_BITMASK;
import static android.provider.Telephony.Carriers.MAX_CONNECTIONS;
import static android.provider.Telephony.Carriers.MCC;
@@ -163,7 +164,7 @@
private static final boolean DBG = true;
private static final boolean VDBG = false; // STOPSHIP if true
- private static final int DATABASE_VERSION = 65 << 16;
+ private static final int DATABASE_VERSION = 66 << 16;
private static final int URL_UNKNOWN = 0;
private static final int URL_TELEPHONY = 1;
private static final int URL_CURRENT = 2;
@@ -400,6 +401,7 @@
String.valueOf(TelephonyManager.UNKNOWN_CARRIER_ID));
CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(INFRASTRUCTURE_BITMASK,
String.valueOf(ApnSetting.INFRASTRUCTURE_CELLULAR));
+ CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(ESIM_BOOTSTRAP_PROVISIONING, "0");
CARRIERS_UNIQUE_FIELDS.addAll(CARRIERS_UNIQUE_FIELDS_DEFAULTS.keySet());
@@ -410,6 +412,7 @@
CARRIERS_BOOLEAN_FIELDS.add(MODEM_PERSIST);
CARRIERS_BOOLEAN_FIELDS.add(USER_VISIBLE);
CARRIERS_BOOLEAN_FIELDS.add(USER_EDITABLE);
+ CARRIERS_BOOLEAN_FIELDS.add(ESIM_BOOTSTRAP_PROVISIONING);
MVNO_TYPE_STRING_MAP = new ArrayMap<>();
MVNO_TYPE_STRING_MAP.put("spn", ApnSetting.MVNO_TYPE_SPN);
@@ -510,6 +513,7 @@
SKIP_464XLAT + " INTEGER DEFAULT " + SKIP_464XLAT_DEFAULT + "," +
ALWAYS_ON + " INTEGER DEFAULT 0," +
INFRASTRUCTURE_BITMASK + " INTEGER DEFAULT 1," +
+ ESIM_BOOTSTRAP_PROVISIONING + " BOOLEAN DEFAULT 0," +
// Uniqueness collisions are used to trigger merge code so if a field is listed
// here it means we will accept both (user edited + new apn_conf definition)
// Columns not included in UNIQUE constraint: name, current, edited,
@@ -1980,6 +1984,21 @@
oldVersion = 65 << 16 | 6;
}
+ if (oldVersion < (66 << 16 | 6)) {
+ try {
+ // Try to add new field ESIM_BOOTSTRAP_PROVISIONING
+ db.execSQL("ALTER TABLE " + CARRIERS_TABLE + " ADD COLUMN "
+ + ESIM_BOOTSTRAP_PROVISIONING + " INTEGER DEFAULT 0;");
+ } catch (SQLiteException e) {
+ if (DBG) {
+ log("onUpgrade failed to update " + CARRIERS_TABLE
+ + " to add esim bootstrap provisioning flag");
+ }
+
+ }
+ oldVersion = 66 << 16 | 6;
+ }
+
if (DBG) {
log("dbh.onUpgrade:- db=" + db + " oldV=" + oldVersion + " newV=" + newVersion);
}
@@ -2429,6 +2448,7 @@
getIntValueFromCursor(cv, c, SKIP_464XLAT);
getIntValueFromCursor(cv, c, ALWAYS_ON);
getIntValueFromCursor(cv, c, INFRASTRUCTURE_BITMASK);
+ getIntValueFromCursor(cv, c, ESIM_BOOTSTRAP_PROVISIONING);
}
private void copyPreservedApnsToNewTable(SQLiteDatabase db, Cursor c) {
@@ -2653,6 +2673,8 @@
addBoolAttribute(parser, "user_visible", map, USER_VISIBLE);
addBoolAttribute(parser, "user_editable", map, USER_EDITABLE);
addBoolAttribute(parser, "always_on", map, ALWAYS_ON);
+ addBoolAttribute(parser, "esim_bootstrap_provisioning", map,
+ ESIM_BOOTSTRAP_PROVISIONING);
int infrastructureBitmask = ApnSetting.INFRASTRUCTURE_CELLULAR;
String infrastructureList = parser.getAttributeValue(null, "infrastructure_bitmask");
@@ -3849,7 +3871,7 @@
PersistableBundle backedUpSimInfoEntry, int backupDataFormatVersion,
String isoCountryCodeFromDb,
List<String> wfcRestoreBlockedCountries) {
- if (DATABASE_VERSION != 65 << 16) {
+ if (DATABASE_VERSION != 66 << 16) {
throw new AssertionError("The database schema has been updated which might make "
+ "the format of #BACKED_UP_SIM_SPECIFIC_SETTINGS_FILE outdated. Make sure to "
+ "1) review whether any of the columns in #SIM_INFO_COLUMNS_TO_BACKUP have "
diff --git a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java
index a4fa500..71a0c71 100644
--- a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java
+++ b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java
@@ -525,6 +525,21 @@
assertTrue(Arrays.asList(columns).contains(Carriers.INFRASTRUCTURE_BITMASK));
}
+ @Test
+ public void databaseHelperOnUpgrade_hasEsimBootstrapProvisioningFields() {
+ Log.d(TAG, "databaseHelperOnUpgrade_hasEsimBootstrapProvisioningFields");
+ // (5 << 16 | 6) is the first upgrade trigger in onUpgrade
+ SQLiteDatabase db = mInMemoryDbHelper.getWritableDatabase();
+ mHelper.onUpgrade(db, (4 << 16), TelephonyProvider.getVersion(mContext));
+
+ // The upgraded db must have the fields Telephony.Carrier.ESIM_BOOTSTRAP_PROVISIONING.
+ Cursor cursor = db.query("carriers", null, null, null, null, null, null);
+ String[] columns = cursor.getColumnNames();
+ Log.d(TAG, "carriers columns: " + Arrays.toString(columns));
+
+ assertTrue(Arrays.asList(columns).contains(Carriers.ESIM_BOOTSTRAP_PROVISIONING));
+ }
+
/**
* Helper for an in memory DB used to test the TelephonyProvider#DatabaseHelper.
*