Add camera app op - framework
Change-Id: I17736a8abe2c6775e990b88fb3eab963f47167d0
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 2e45b79..da6d8c5 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -1638,6 +1638,12 @@
return sCurrentActivityThread;
}
+ public static String currentOpPackageName() {
+ ActivityThread am = currentActivityThread();
+ return (am != null && am.getApplication() != null)
+ ? am.getApplication().getOpPackageName() : null;
+ }
+
public static String currentPackageName() {
ActivityThread am = currentActivityThread();
return (am != null && am.mBoundApplication != null)
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index d88594d..1fc69c0 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -460,9 +460,8 @@
mEventHandler = null;
}
- String packageName = ActivityThread.currentPackageName();
-
- return native_setup(new WeakReference<Camera>(this), cameraId, halVersion, packageName);
+ return native_setup(new WeakReference<Camera>(this), cameraId, halVersion,
+ ActivityThread.currentOpPackageName());
}
private int cameraInitNormal(int cameraId) {
diff --git a/core/java/android/hardware/ICameraService.aidl b/core/java/android/hardware/ICameraService.aidl
index 9bc2f46..7b96e20 100644
--- a/core/java/android/hardware/ICameraService.aidl
+++ b/core/java/android/hardware/ICameraService.aidl
@@ -38,13 +38,13 @@
int getCameraInfo(int cameraId, out CameraInfo info);
int connect(ICameraClient client, int cameraId,
- String clientPackageName,
+ String opPackageName,
int clientUid,
// Container for an ICamera object
out BinderHolder device);
int connectDevice(ICameraDeviceCallbacks callbacks, int cameraId,
- String clientPackageName,
+ String opPackageName,
int clientUid,
// Container for an ICameraDeviceUser object
out BinderHolder device);
@@ -69,7 +69,7 @@
int connectLegacy(ICameraClient client, int cameraId,
int halVersion,
- String clientPackageName,
+ String opPackageName,
int clientUid,
// Container for an ICamera object
out BinderHolder device);
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index e2d2f61..9327f00 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -314,7 +314,7 @@
"Camera service is currently unavailable");
}
cameraService.connectDevice(callbacks, id,
- mContext.getPackageName(), USE_CALLING_UID, holder);
+ mContext.getOpPackageName(), USE_CALLING_UID, holder);
cameraUser = ICameraDeviceUser.Stub.asInterface(holder.getBinder());
} else {
// Use legacy camera implementation for HAL1 devices
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java
index d5e6b3e..472da02 100644
--- a/media/java/android/media/AudioRecord.java
+++ b/media/java/android/media/AudioRecord.java
@@ -27,7 +27,6 @@
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.app.ActivityThread;
-import android.app.Application;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
@@ -380,7 +379,7 @@
int initResult = native_setup( new WeakReference<AudioRecord>(this),
mAudioAttributes, mSampleRate, mChannelMask, mChannelIndexMask,
mAudioFormat, mNativeBufferSizeInBytes,
- session, getMyOpPackageName());
+ session, ActivityThread.currentOpPackageName());
if (initResult != SUCCESS) {
loge("Error code "+initResult+" when initializing native AudioRecord object.");
return; // with mState == STATE_UNINITIALIZED
@@ -1500,15 +1499,4 @@
private static void loge(String msg) {
Log.e(TAG, msg);
}
-
- private static String getMyOpPackageName() {
- ActivityThread activityThread = ActivityThread.currentActivityThread();
- if (activityThread != null) {
- Application application = activityThread.getApplication();
- if (application != null) {
- return application.getOpPackageName();
- }
- }
- throw new IllegalStateException("Cannot create AudioRecord outside of an app");
- }
}
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index a2f596b..206c171c 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -19,7 +19,6 @@
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.app.ActivityThread;
-import android.app.Application;
import android.hardware.Camera;
import android.os.Handler;
import android.os.Looper;
@@ -113,7 +112,8 @@
/* Native setup requires a weak reference to our object.
* It's easier to create it here than in C++.
*/
- native_setup(new WeakReference<MediaRecorder>(this), packageName, getMyOpPackageName());
+ native_setup(new WeakReference<MediaRecorder>(this), packageName,
+ ActivityThread.currentOpPackageName());
}
/**
@@ -1096,15 +1096,4 @@
@Override
protected void finalize() { native_finalize(); }
-
- private static String getMyOpPackageName() {
- ActivityThread activityThread = ActivityThread.currentActivityThread();
- if (activityThread != null) {
- Application application = activityThread.getApplication();
- if (application != null) {
- return application.getOpPackageName();
- }
- }
- throw new IllegalStateException("Cannot create AudioRecord outside of an app");
- }
}
diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java
index 9fc90df..b94a7e6 100644
--- a/media/java/android/media/audiofx/AudioEffect.java
+++ b/media/java/android/media/audiofx/AudioEffect.java
@@ -19,7 +19,6 @@
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.app.ActivityThread;
-import android.app.Application;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -397,7 +396,7 @@
// native initialization
int initResult = native_setup(new WeakReference<AudioEffect>(this),
type.toString(), uuid.toString(), priority, audioSession, id,
- desc, getMyOpPackageName());
+ desc, ActivityThread.currentOpPackageName());
if (initResult != SUCCESS && initResult != ALREADY_EXISTS) {
Log.e(TAG, "Error code " + initResult
+ " when initializing AudioEffect.");
@@ -1359,15 +1358,4 @@
}
return b;
}
-
- private static String getMyOpPackageName() {
- ActivityThread activityThread = ActivityThread.currentActivityThread();
- if (activityThread != null) {
- Application application = activityThread.getApplication();
- if (application != null) {
- return application.getOpPackageName();
- }
- }
- throw new IllegalStateException("Cannot create AudioEffect outside of an app");
- }
}
diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java
index 0c48063..0fe7246 100644
--- a/media/java/android/media/audiofx/Visualizer.java
+++ b/media/java/android/media/audiofx/Visualizer.java
@@ -17,7 +17,6 @@
package android.media.audiofx;
import android.app.ActivityThread;
-import android.app.Application;
import android.util.Log;
import java.lang.ref.WeakReference;
import android.os.Handler;
@@ -209,7 +208,7 @@
mState = STATE_UNINITIALIZED;
// native initialization
int result = native_setup(new WeakReference<Visualizer>(this), audioSession, id,
- getMyOpPackageName());
+ ActivityThread.currentOpPackageName());
if (result != SUCCESS && result != ALREADY_EXISTS) {
Log.e(TAG, "Error code "+result+" when initializing Visualizer.");
switch (result) {
@@ -769,16 +768,5 @@
}
}
-
- private static String getMyOpPackageName() {
- ActivityThread activityThread = ActivityThread.currentActivityThread();
- if (activityThread != null) {
- Application application = activityThread.getApplication();
- if (application != null) {
- return application.getOpPackageName();
- }
- }
- throw new IllegalStateException("Cannot create AudioRecord outside of an app");
- }
}