Add test function for emergency number db update
1) get emergency number db version
2) override emergency db file partition
Test: atest TelephonyHostTest#testEmergencyNumberDb
(Though the condition is RVC, I manually triggered all the running with QT build,
and ensured each Assert is hit)
https://paste.googleplex.com/4679407325151232
Bug: 136027884
Change-Id: Ifaec0af0e5100900453a2d794c85cd91925189a1
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 3e1b6a5..342d61c 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2426,6 +2426,11 @@
mApp.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE, null);
}
+ private void enforceActiveEmergencySessionPermission() {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION, null);
+ }
+
/**
* Make sure the caller has the CALL_PHONE permission.
*
@@ -7234,6 +7239,57 @@
}
@Override
+ public int getEmergencyNumberDbVersion(int subId) {
+ enforceReadPrivilegedPermission("getEmergencyNumberDbVersion");
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ final Phone phone = getPhone(subId);
+ if (phone == null) {
+ loge("getEmergencyNumberDbVersion fails with invalid subId: " + subId);
+ return TelephonyManager.INVALID_EMERGENCY_NUMBER_DB_VERSION;
+ }
+ return phone.getEmergencyNumberDbVersion();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void notifyOtaEmergencyNumberDbInstalled() {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ for (Phone phone: PhoneFactory.getPhones()) {
+ EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+ if (tracker != null) {
+ tracker.updateOtaEmergencyNumberDatabase();
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void updateTestOtaEmergencyNumberDbFilePath(String otaFilePath) {
+ enforceActiveEmergencySessionPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ for (Phone phone: PhoneFactory.getPhones()) {
+ EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+ if (tracker != null) {
+ tracker.updateTestOtaEmergencyNumberDbFilePath(otaFilePath);
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
public List<String> getCertsFromCarrierPrivilegeAccessRules(int subId) {
enforceReadPrivilegedPermission("getCertsFromCarrierPrivilegeAccessRules");
Phone phone = getPhone(subId);