summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2013-09-11 09:51:14 -0700
committerDianne Hackborn <hackbod@google.com>2013-09-11 09:59:47 -0700
commit95d785346b4dae808a2d8f77356175e55a572d96 (patch)
tree821f4566c90d25c624d6c85539bfbb6a0142754c /telephony
parentec7a6ea84578be91e04a54331ea4ca63e7fb69e1 (diff)
downloadframeworks_base-95d785346b4dae808a2d8f77356175e55a572d96.zip
frameworks_base-95d785346b4dae808a2d8f77356175e55a572d96.tar.gz
frameworks_base-95d785346b4dae808a2d8f77356175e55a572d96.tar.bz2
Fix issue #10688644: Java crash in com.android.phone:
java.lang.SecurityException: Operation not allowed There was a situation I wasn't taking into account -- components declared by the system has a special ability to run in the processes of other uids. This means that if that code loaded into another process tries to do anything needing an app op verification, it will fail, because it will say it is calling as the system package name but it is not actually coming from the system uid. To fix this, we add a new Context.getOpPackageName() to go along-side getBasePackageName(). This is a special call for use by all app ops verification, which will be initialized with either the base package name, the actual package name, or now the default package name of the process if we are creating a context for system code being loaded into a non-system process. I had to update all of the code doing app ops checks to switch to this method to get the calling package name. Also improve the security exception throw to have a more descriptive error message. Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 40201ad..7d8b64f 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -309,7 +309,7 @@ public class TelephonyManager {
*/
public List<NeighboringCellInfo> getNeighboringCellInfo() {
try {
- return getITelephony().getNeighboringCellInfo(mContext.getBasePackageName());
+ return getITelephony().getNeighboringCellInfo(mContext.getOpPackageName());
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {