Loading services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +13 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS; import static android.content.pm.PackageManager.ACTION_REQUEST_PERMISSIONS; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static android.companion.virtualdevice.flags.Flags.virtualCameraServiceDiscovery; import android.annotation.EnforcePermission; import android.annotation.NonNull; Loading Loading @@ -111,6 +112,8 @@ import com.android.server.companion.virtual.audio.VirtualAudioController; import com.android.server.companion.virtual.camera.VirtualCameraController; import com.android.server.inputmethod.InputMethodManagerInternal; import dalvik.annotation.optimization.FastNative; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; Loading Loading @@ -265,7 +268,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub runningAppsChangedCallback, params, DisplayManagerGlobal.getInstance(), Flags.virtualCamera() isVirtualCameraEnabled() ? new VirtualCameraController(params.getDevicePolicy(POLICY_TYPE_CAMERA)) : null); } Loading Loading @@ -1535,4 +1538,13 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub return mToken; } } private static boolean isVirtualCameraEnabled() { return Flags.virtualCamera() && virtualCameraServiceDiscovery() && nativeVirtualCameraServiceBuildFlagEnabled(); } // Returns true if virtual_camera service is enabled in this build. @FastNative private static native boolean nativeVirtualCameraServiceBuildFlagEnabled(); } services/core/jni/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ cc_library_static { "com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp", "com_android_server_ConsumerIrService.cpp", "com_android_server_companion_virtual_InputController.cpp", "com_android_server_companion_virtual_VirtualDeviceImpl.cpp", "com_android_server_devicepolicy_CryptoTestHelper.cpp", "com_android_server_display_DisplayControl.cpp", "com_android_server_display_SmallAreaDetectionController.cpp", Loading Loading @@ -214,6 +215,7 @@ cc_defaults { static_libs: [ "android.hardware.broadcastradio@common-utils-1x-lib", "libaidlcommonsupport", "libvirtualdevicebuildflags", ], product_variables: { Loading services/core/jni/com_android_server_companion_virtual_VirtualDeviceImpl.cpp 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <android_companion_virtualdevice_build_flags.h> #include <nativehelper/JNIHelp.h> #include <array> #include "jni.h" namespace android { namespace { jboolean nativeVirtualCameraServiceBuildFlagEnabled(JNIEnv* env, jobject clazz) { return ::android::companion::virtualdevice::flags::virtual_camera_service_build_flag(); } const std::array<JNINativeMethod, 1> kMethods = { {{"nativeVirtualCameraServiceBuildFlagEnabled", "()Z", (void*)nativeVirtualCameraServiceBuildFlagEnabled}}, }; } // namespace int register_android_server_companion_virtual_VirtualDeviceImpl(JNIEnv* env) { return jniRegisterNativeMethods(env, "com/android/server/companion/virtual/VirtualDeviceImpl", kMethods.data(), kMethods.size()); } } // namespace android services/core/jni/onload.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ int register_android_server_GpuService(JNIEnv* env); int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env); int register_android_server_sensor_SensorService(JavaVM* vm, JNIEnv* env); int register_android_server_companion_virtual_InputController(JNIEnv* env); int register_android_server_companion_virtual_VirtualDeviceImpl(JNIEnv* env); int register_android_server_app_GameManagerService(JNIEnv* env); int register_com_android_server_wm_TaskFpsCallbackController(JNIEnv* env); int register_com_android_server_display_DisplayControl(JNIEnv* env); Loading Loading @@ -128,6 +129,7 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_stats_pull_StatsPullAtomService(env); register_android_server_sensor_SensorService(vm, env); register_android_server_companion_virtual_InputController(env); register_android_server_companion_virtual_VirtualDeviceImpl(env); register_android_server_app_GameManagerService(env); register_com_android_server_wm_TaskFpsCallbackController(env); register_com_android_server_display_DisplayControl(env); Loading Loading
services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +13 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS; import static android.content.pm.PackageManager.ACTION_REQUEST_PERMISSIONS; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static android.companion.virtualdevice.flags.Flags.virtualCameraServiceDiscovery; import android.annotation.EnforcePermission; import android.annotation.NonNull; Loading Loading @@ -111,6 +112,8 @@ import com.android.server.companion.virtual.audio.VirtualAudioController; import com.android.server.companion.virtual.camera.VirtualCameraController; import com.android.server.inputmethod.InputMethodManagerInternal; import dalvik.annotation.optimization.FastNative; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; Loading Loading @@ -265,7 +268,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub runningAppsChangedCallback, params, DisplayManagerGlobal.getInstance(), Flags.virtualCamera() isVirtualCameraEnabled() ? new VirtualCameraController(params.getDevicePolicy(POLICY_TYPE_CAMERA)) : null); } Loading Loading @@ -1535,4 +1538,13 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub return mToken; } } private static boolean isVirtualCameraEnabled() { return Flags.virtualCamera() && virtualCameraServiceDiscovery() && nativeVirtualCameraServiceBuildFlagEnabled(); } // Returns true if virtual_camera service is enabled in this build. @FastNative private static native boolean nativeVirtualCameraServiceBuildFlagEnabled(); }
services/core/jni/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ cc_library_static { "com_android_server_biometrics_SurfaceToNativeHandleConverter.cpp", "com_android_server_ConsumerIrService.cpp", "com_android_server_companion_virtual_InputController.cpp", "com_android_server_companion_virtual_VirtualDeviceImpl.cpp", "com_android_server_devicepolicy_CryptoTestHelper.cpp", "com_android_server_display_DisplayControl.cpp", "com_android_server_display_SmallAreaDetectionController.cpp", Loading Loading @@ -214,6 +215,7 @@ cc_defaults { static_libs: [ "android.hardware.broadcastradio@common-utils-1x-lib", "libaidlcommonsupport", "libvirtualdevicebuildflags", ], product_variables: { Loading
services/core/jni/com_android_server_companion_virtual_VirtualDeviceImpl.cpp 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <android_companion_virtualdevice_build_flags.h> #include <nativehelper/JNIHelp.h> #include <array> #include "jni.h" namespace android { namespace { jboolean nativeVirtualCameraServiceBuildFlagEnabled(JNIEnv* env, jobject clazz) { return ::android::companion::virtualdevice::flags::virtual_camera_service_build_flag(); } const std::array<JNINativeMethod, 1> kMethods = { {{"nativeVirtualCameraServiceBuildFlagEnabled", "()Z", (void*)nativeVirtualCameraServiceBuildFlagEnabled}}, }; } // namespace int register_android_server_companion_virtual_VirtualDeviceImpl(JNIEnv* env) { return jniRegisterNativeMethods(env, "com/android/server/companion/virtual/VirtualDeviceImpl", kMethods.data(), kMethods.size()); } } // namespace android
services/core/jni/onload.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ int register_android_server_GpuService(JNIEnv* env); int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env); int register_android_server_sensor_SensorService(JavaVM* vm, JNIEnv* env); int register_android_server_companion_virtual_InputController(JNIEnv* env); int register_android_server_companion_virtual_VirtualDeviceImpl(JNIEnv* env); int register_android_server_app_GameManagerService(JNIEnv* env); int register_com_android_server_wm_TaskFpsCallbackController(JNIEnv* env); int register_com_android_server_display_DisplayControl(JNIEnv* env); Loading Loading @@ -128,6 +129,7 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_stats_pull_StatsPullAtomService(env); register_android_server_sensor_SensorService(vm, env); register_android_server_companion_virtual_InputController(env); register_android_server_companion_virtual_VirtualDeviceImpl(env); register_android_server_app_GameManagerService(env); register_com_android_server_wm_TaskFpsCallbackController(env); register_com_android_server_display_DisplayControl(env); Loading