Loading services/core/java/com/android/server/connectivity/Vpn.java +13 −2 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ import com.android.net.module.util.NetworkStackConstants; import com.android.server.DeviceIdleInternal; import com.android.server.LocalServices; import com.android.server.net.BaseNetworkObserver; import com.android.server.utils.LazyJniRegistrar; import libcore.io.IoUtils; Loading Loading @@ -468,6 +469,8 @@ public class Vpn { @VisibleForTesting public static class Dependencies { protected Dependencies() {} public boolean isCallerSystem() { return Binder.getCallingUid() == Process.SYSTEM_UID; } Loading Loading @@ -593,6 +596,14 @@ public class Vpn { } } // A helper class to ensure JNI registration before use. This avoids native lib dependencies in // test-only environments that mock or partially use the base Dependencies class. private static final class DependenciesWithJniRegistration extends Dependencies { static { LazyJniRegistrar.registerVpn(); } } @VisibleForTesting interface ValidationStatusCallback { void onValidationStatus(int status); Loading @@ -600,8 +611,8 @@ public class Vpn { public Vpn(Looper looper, Context context, INetworkManagementService netService, INetd netd, @UserIdInt int userId, VpnProfileStore vpnProfileStore) { this(looper, context, new Dependencies(), netService, netd, userId, vpnProfileStore, new SystemServices(context), new Ikev2SessionCreator()); this(looper, context, new DependenciesWithJniRegistration(), netService, netd, userId, vpnProfileStore, new SystemServices(context), new Ikev2SessionCreator()); } @VisibleForTesting Loading services/core/java/com/android/server/utils/LazyJniRegistrar.java +3 −0 Original line number Diff line number Diff line Loading @@ -47,4 +47,7 @@ public final class LazyJniRegistrar { /** Registers native methods for VrManagerService. */ public static native void registerVrManagerService(); /** Registers native methods for Vpn (the JNI counterpart for VpnManagerService). */ public static native void registerVpn(); } services/core/jni/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ cc_library_static { "com_android_server_devicepolicy_CryptoTestHelper.cpp", "com_android_server_display_DisplayControl.cpp", "com_android_server_display_SmallAreaDetectionController.cpp", "com_android_server_connectivity_Vpn.cpp", "com_android_server_gpu_GpuService.cpp", "com_android_server_HardwarePropertiesManagerService.cpp", "com_android_server_input_InputManagerService.cpp", Loading Loading @@ -261,6 +260,7 @@ filegroup { srcs: [ "com_android_server_ConsumerIrService.cpp", "com_android_server_app_GameManagerService.cpp", "com_android_server_connectivity_Vpn.cpp", "com_android_server_utils_LazyJniRegistrar.cpp", "com_android_server_vr_VrManagerService.cpp", ], Loading services/core/jni/com_android_server_utils_LazyJniRegistrar.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ namespace android { // Forward declared per-class registration methods. int register_android_server_ConsumerIrService(JNIEnv* env); int register_android_server_app_GameManagerService(JNIEnv* env); int register_android_server_connectivity_Vpn(JNIEnv* env); int register_android_server_vr_VrManagerService(JNIEnv* env); namespace { Loading @@ -38,6 +39,10 @@ void registerGameManagerService(JNIEnv* env, jclass) { register_android_server_app_GameManagerService(env); } void registerVpn(JNIEnv* env, jclass) { register_android_server_connectivity_Vpn(env); } void registerVrManagerService(JNIEnv* env, jclass) { register_android_server_vr_VrManagerService(env); } Loading @@ -45,6 +50,7 @@ void registerVrManagerService(JNIEnv* env, jclass) { static const JNINativeMethod sJniRegistrarMethods[] = { {"registerConsumerIrService", "()V", (void*)registerConsumerIrService}, {"registerGameManagerService", "()V", (void*)registerGameManagerService}, {"registerVpn", "()V", (void*)registerVpn}, {"registerVrManagerService", "()V", (void*)registerVrManagerService}, }; Loading services/core/jni/onload.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ int register_android_server_UsbHostManager(JNIEnv* env); int register_android_server_vibrator_VibratorController(JavaVM* vm, JNIEnv* env); int register_android_server_vibrator_VibratorManagerService(JavaVM* vm, JNIEnv* env); int register_android_server_location_GnssLocationProvider(JNIEnv* env); int register_android_server_connectivity_Vpn(JNIEnv* env); int register_android_server_devicepolicy_CryptoTestHelper(JNIEnv*); int register_android_server_tv_TvUinputBridge(JNIEnv* env); int register_android_server_tv_TvInputHal(JNIEnv* env); Loading Loading @@ -106,7 +105,6 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_vibrator_VibratorManagerService(vm, env); register_android_server_SystemServer(env); register_android_server_location_GnssLocationProvider(env); register_android_server_connectivity_Vpn(env); register_android_server_devicepolicy_CryptoTestHelper(env); register_android_server_BatteryStatsService(env); register_android_server_tv_TvUinputBridge(env); Loading Loading
services/core/java/com/android/server/connectivity/Vpn.java +13 −2 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ import com.android.net.module.util.NetworkStackConstants; import com.android.server.DeviceIdleInternal; import com.android.server.LocalServices; import com.android.server.net.BaseNetworkObserver; import com.android.server.utils.LazyJniRegistrar; import libcore.io.IoUtils; Loading Loading @@ -468,6 +469,8 @@ public class Vpn { @VisibleForTesting public static class Dependencies { protected Dependencies() {} public boolean isCallerSystem() { return Binder.getCallingUid() == Process.SYSTEM_UID; } Loading Loading @@ -593,6 +596,14 @@ public class Vpn { } } // A helper class to ensure JNI registration before use. This avoids native lib dependencies in // test-only environments that mock or partially use the base Dependencies class. private static final class DependenciesWithJniRegistration extends Dependencies { static { LazyJniRegistrar.registerVpn(); } } @VisibleForTesting interface ValidationStatusCallback { void onValidationStatus(int status); Loading @@ -600,8 +611,8 @@ public class Vpn { public Vpn(Looper looper, Context context, INetworkManagementService netService, INetd netd, @UserIdInt int userId, VpnProfileStore vpnProfileStore) { this(looper, context, new Dependencies(), netService, netd, userId, vpnProfileStore, new SystemServices(context), new Ikev2SessionCreator()); this(looper, context, new DependenciesWithJniRegistration(), netService, netd, userId, vpnProfileStore, new SystemServices(context), new Ikev2SessionCreator()); } @VisibleForTesting Loading
services/core/java/com/android/server/utils/LazyJniRegistrar.java +3 −0 Original line number Diff line number Diff line Loading @@ -47,4 +47,7 @@ public final class LazyJniRegistrar { /** Registers native methods for VrManagerService. */ public static native void registerVrManagerService(); /** Registers native methods for Vpn (the JNI counterpart for VpnManagerService). */ public static native void registerVpn(); }
services/core/jni/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ cc_library_static { "com_android_server_devicepolicy_CryptoTestHelper.cpp", "com_android_server_display_DisplayControl.cpp", "com_android_server_display_SmallAreaDetectionController.cpp", "com_android_server_connectivity_Vpn.cpp", "com_android_server_gpu_GpuService.cpp", "com_android_server_HardwarePropertiesManagerService.cpp", "com_android_server_input_InputManagerService.cpp", Loading Loading @@ -261,6 +260,7 @@ filegroup { srcs: [ "com_android_server_ConsumerIrService.cpp", "com_android_server_app_GameManagerService.cpp", "com_android_server_connectivity_Vpn.cpp", "com_android_server_utils_LazyJniRegistrar.cpp", "com_android_server_vr_VrManagerService.cpp", ], Loading
services/core/jni/com_android_server_utils_LazyJniRegistrar.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ namespace android { // Forward declared per-class registration methods. int register_android_server_ConsumerIrService(JNIEnv* env); int register_android_server_app_GameManagerService(JNIEnv* env); int register_android_server_connectivity_Vpn(JNIEnv* env); int register_android_server_vr_VrManagerService(JNIEnv* env); namespace { Loading @@ -38,6 +39,10 @@ void registerGameManagerService(JNIEnv* env, jclass) { register_android_server_app_GameManagerService(env); } void registerVpn(JNIEnv* env, jclass) { register_android_server_connectivity_Vpn(env); } void registerVrManagerService(JNIEnv* env, jclass) { register_android_server_vr_VrManagerService(env); } Loading @@ -45,6 +50,7 @@ void registerVrManagerService(JNIEnv* env, jclass) { static const JNINativeMethod sJniRegistrarMethods[] = { {"registerConsumerIrService", "()V", (void*)registerConsumerIrService}, {"registerGameManagerService", "()V", (void*)registerGameManagerService}, {"registerVpn", "()V", (void*)registerVpn}, {"registerVrManagerService", "()V", (void*)registerVrManagerService}, }; Loading
services/core/jni/onload.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ int register_android_server_UsbHostManager(JNIEnv* env); int register_android_server_vibrator_VibratorController(JavaVM* vm, JNIEnv* env); int register_android_server_vibrator_VibratorManagerService(JavaVM* vm, JNIEnv* env); int register_android_server_location_GnssLocationProvider(JNIEnv* env); int register_android_server_connectivity_Vpn(JNIEnv* env); int register_android_server_devicepolicy_CryptoTestHelper(JNIEnv*); int register_android_server_tv_TvUinputBridge(JNIEnv* env); int register_android_server_tv_TvInputHal(JNIEnv* env); Loading Loading @@ -106,7 +105,6 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_vibrator_VibratorManagerService(vm, env); register_android_server_SystemServer(env); register_android_server_location_GnssLocationProvider(env); register_android_server_connectivity_Vpn(env); register_android_server_devicepolicy_CryptoTestHelper(env); register_android_server_BatteryStatsService(env); register_android_server_tv_TvUinputBridge(env); Loading