diff options
author | 2024-07-01 11:30:53 -0700 | |
---|---|---|
committer | 2024-07-08 20:33:01 +0000 | |
commit | 676d6af0ef9fbd4ed0948f13639eb921832afac6 (patch) | |
tree | bfdd2c1d9381c6252bf3474cf371a66042121138 | |
parent | 177af6b61a94ee76fc8c5a059d592c2eda2af96e (diff) |
CameraService: Pass package name / attributionTag in AttributionSource
In addition to the uid/pid/deviceId, pass the package name and
attributionTag parameters to connect/connectDevice through
the clientAttribution argument.
Test: atest CtsCameraTestCases
Test: Smoke test GCA
Bug: 343965468
Bug: 190657833
Flag: EXEMPT Strict mechanical refactor
Change-Id: I731e53ab6a452cb962431cc5d7fc8c6f2fb271a6
6 files changed, 9 insertions, 26 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index cbac912e33e8..ca3e3d2ad61b 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -569,7 +569,6 @@ public class Camera { return native_setup( new WeakReference<>(this), cameraId, - ActivityThread.currentOpPackageName(), rotationOverride, forceSlowJpegMode, clientAttribution.getParcel(), @@ -660,7 +659,6 @@ public class Camera { private native int native_setup( Object cameraThis, int cameraId, - String packageName, int rotationOverride, boolean forceSlowJpegMode, Parcel clientAttributionParcel, diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 2dbd4b81fe6c..6201359ca53e 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -980,6 +980,8 @@ public final class CameraManager { clientAttribution.uid = USE_CALLING_UID; clientAttribution.pid = USE_CALLING_PID; clientAttribution.deviceId = contextAttribution.deviceId; + clientAttribution.packageName = mContext.getOpPackageName(); + clientAttribution.attributionTag = mContext.getAttributionTag(); clientAttribution.next = new AttributionSourceState[0]; return clientAttribution; } @@ -1041,8 +1043,6 @@ public final class CameraManager { cameraService.connectDevice( callbacks, cameraId, - mContext.getOpPackageName(), - mContext.getAttributionTag(), oomScoreOffset, mContext.getApplicationInfo().targetSdkVersion, rotationOverride, diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index b8fd3d065d8d..3f74fac35bb7 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -582,8 +582,8 @@ static void android_hardware_Camera_getCameraInfo(JNIEnv *env, jobject thiz, jin // connect to camera service static jint android_hardware_Camera_native_setup(JNIEnv *env, jobject thiz, jobject weak_this, - jint cameraId, jstring clientPackageName, - jint rotationOverride, jboolean forceSlowJpegMode, + jint cameraId, jint rotationOverride, + jboolean forceSlowJpegMode, jobject jClientAttributionParcel, jint devicePolicy) { AttributionSourceState clientAttribution; @@ -591,16 +591,8 @@ static jint android_hardware_Camera_native_setup(JNIEnv *env, jobject thiz, jobj return -EACCES; } - // Convert jstring to String16 - const char16_t *rawClientName = reinterpret_cast<const char16_t*>( - env->GetStringChars(clientPackageName, NULL)); - jsize rawClientNameLen = env->GetStringLength(clientPackageName); - std::string clientName = toStdString(rawClientName, rawClientNameLen); - env->ReleaseStringChars(clientPackageName, - reinterpret_cast<const jchar*>(rawClientName)); - int targetSdkVersion = android_get_application_target_sdk_version(); - sp<Camera> camera = Camera::connect(cameraId, clientName, targetSdkVersion, rotationOverride, + sp<Camera> camera = Camera::connect(cameraId, targetSdkVersion, rotationOverride, forceSlowJpegMode, clientAttribution, devicePolicy); if (camera == NULL) { return -EACCES; @@ -1089,7 +1081,7 @@ static const JNINativeMethod camMethods[] = { (void *)android_hardware_Camera_getNumberOfCameras}, {"_getCameraInfo", "(IILandroid/os/Parcel;ILandroid/hardware/Camera$CameraInfo;)V", (void *)android_hardware_Camera_getCameraInfo}, - {"native_setup", "(Ljava/lang/Object;ILjava/lang/String;IZLandroid/os/Parcel;I)I", + {"native_setup", "(Ljava/lang/Object;IIZLandroid/os/Parcel;I)I", (void *)android_hardware_Camera_native_setup}, {"native_release", "()V", (void *)android_hardware_Camera_release}, {"setPreviewSurface", "(Landroid/view/Surface;)V", diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java index 102d21acfd19..43acbb1eacc8 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java @@ -2246,6 +2246,8 @@ public class CameraTestUtils extends Assert { clientAttribution.uid = -1; // USE_CALLING_UID clientAttribution.pid = -1; // USE_CALLING_PID clientAttribution.deviceId = contextAttribution.deviceId; + clientAttribution.packageName = context.getOpPackageName(); + clientAttribution.attributionTag = context.getAttributionTag(); clientAttribution.next = new AttributionSourceState[0]; return clientAttribution; } diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java index ad3374a7da6a..ac85ab7f6a6e 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java @@ -169,10 +169,8 @@ public class CameraBinderTest extends AndroidTestCase { ICameraClient dummyCallbacks = new DummyCameraClient(); - String clientPackageName = getContext().getPackageName(); - ICamera cameraUser = mUtils.getCameraService() - .connect(dummyCallbacks, cameraId, clientPackageName, + .connect(dummyCallbacks, cameraId, getContext().getApplicationInfo().targetSdkVersion, ICameraService.ROTATION_OVERRIDE_NONE, /*forceSlowJpegMode*/false, @@ -267,8 +265,6 @@ public class CameraBinderTest extends AndroidTestCase { ICameraDeviceCallbacks dummyCallbacks = new DummyCameraDeviceCallbacks(); - String clientPackageName = getContext().getPackageName(); - String clientAttributionTag = getContext().getAttributionTag(); AttributionSourceState clientAttribution = CameraTestUtils.getClientAttribution(mContext); clientAttribution.deviceId = DEVICE_ID_DEFAULT; @@ -277,7 +273,6 @@ public class CameraBinderTest extends AndroidTestCase { ICameraDeviceUser cameraUser = mUtils.getCameraService().connectDevice( dummyCallbacks, String.valueOf(cameraId), - clientPackageName, clientAttributionTag, 0 /*oomScoreOffset*/, getContext().getApplicationInfo().targetSdkVersion, ICameraService.ROTATION_OVERRIDE_NONE, clientAttribution, diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java index 0ab1ee9095e0..35ad924cee74 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java @@ -242,9 +242,6 @@ public class CameraDeviceBinderTest extends AndroidTestCase { ICameraDeviceCallbacks.Stub dummyCallbacks = new DummyCameraDeviceCallbacks(); - String clientPackageName = getContext().getPackageName(); - String clientAttributionTag = getContext().getAttributionTag(); - mMockCb = spy(dummyCallbacks); AttributionSourceState clientAttribution = CameraTestUtils.getClientAttribution(mContext); @@ -252,7 +249,6 @@ public class CameraDeviceBinderTest extends AndroidTestCase { clientAttribution.uid = ICameraService.USE_CALLING_UID; mCameraUser = mUtils.getCameraService().connectDevice(mMockCb, mCameraId, - clientPackageName, clientAttributionTag, /*oomScoreOffset*/0, getContext().getApplicationInfo().targetSdkVersion, ICameraService.ROTATION_OVERRIDE_NONE, clientAttribution, DEVICE_POLICY_DEFAULT); assertNotNull(String.format("Camera %s was null", mCameraId), mCameraUser); |