Make CellBroadcast APIs public
Also includes permission checks for enable/disable range, which
Require RECEIVE_EMERGENCY_BROADCAST.
Bug: 135956699
Test: Manually verify that CellBroadcastRecevier is able to call, verify
with CTS that without permissions a SecurityException is thrown
Change-Id: I3ee6c81b353f707caff13f5906b8dc6a66487267
diff --git a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
index ba99657..3558d4e 100644
--- a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
@@ -806,6 +806,9 @@
}
public boolean enableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) {
+ mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST",
+ "enabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. "
+ + "ranType=" + ranType);
if (ranType == SmsManager.CELL_BROADCAST_RAN_TYPE_GSM) {
return enableGsmBroadcastRange(startMessageId, endMessageId);
} else if (ranType == SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA) {
@@ -816,6 +819,9 @@
}
public boolean disableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) {
+ mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST",
+ "disabling cell broadcast range [" + startMessageId + "-" + endMessageId
+ + "]. ranType=" + ranType);
if (ranType == SmsManager.CELL_BROADCAST_RAN_TYPE_GSM ) {
return disableGsmBroadcastRange(startMessageId, endMessageId);
} else if (ranType == SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA) {
diff --git a/src/java/com/android/internal/telephony/gsm/GsmCellBroadcastHandler.java b/src/java/com/android/internal/telephony/gsm/GsmCellBroadcastHandler.java
index bf406cc..9c02f33 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmCellBroadcastHandler.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmCellBroadcastHandler.java
@@ -232,7 +232,7 @@
SmsCbLocation location;
switch (header.getGeographicalScope()) {
- case SmsCbMessage.GEOGRAPHICAL_SCOPE_LA_WIDE:
+ case SmsCbMessage.GEOGRAPHICAL_SCOPE_LOCATION_AREA_WIDE:
location = new SmsCbLocation(plmn, lac, -1);
break;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsCbTest.java b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsCbTest.java
index a4b7ae7..689392e 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsCbTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsCbTest.java
@@ -92,7 +92,8 @@
doTestGeographicalScopeValue(pdu, (byte)0x00,
SmsCbMessage.GEOGRAPHICAL_SCOPE_CELL_WIDE_IMMEDIATE);
doTestGeographicalScopeValue(pdu, (byte)0x40, SmsCbMessage.GEOGRAPHICAL_SCOPE_PLMN_WIDE);
- doTestGeographicalScopeValue(pdu, (byte)0x80, SmsCbMessage.GEOGRAPHICAL_SCOPE_LA_WIDE);
+ doTestGeographicalScopeValue(pdu, (byte)0x80,
+ SmsCbMessage.GEOGRAPHICAL_SCOPE_LOCATION_AREA_WIDE);
doTestGeographicalScopeValue(pdu, (byte)0xC0, SmsCbMessage.GEOGRAPHICAL_SCOPE_CELL_WIDE);
}