增加android 禁用相机后摄的接口

调试没什么的,就是被自己挖矿了,代码写的是persist.sys.camera.disabled ,测试的时候用的是 persist.sys.camera.back.disabled 。。。。。

复制代码
+++ b/frameworks/av/services/camera/libcameraservice/CameraService.cpp
@@ -1207,6 +1207,22 @@ Status CameraService::validateClientPermissionsLocked(const String8& cameraId,
     return Status::ok();
 }
 
+       bool CameraService::isCameraDisabled(const android::String8& cameraId) const {
+    // 读取 persist.sys.camera.disabled 的值
+    char value[PROPERTY_VALUE_MAX];
+    property_get("persist.sys.camera.disabled", value, "0");
+    bool disabled = (atoi(value) == 1);
+   //  ALOGE("Camera %s  ..1223 ...is isCameraDisabled: %d", cameraId.string(), disabled);
+    // 仅当 Camera ID 为 "0"(后摄)时禁用
+    if (disabled && cameraId == "0") {
+       //              ALOGE("Camera %s is  1225 disabled by persist.sys.camera.disabled", cameraId.string());
+        return true;
+    }
+    return false;
+}
+
+
+

@@ -1621,6 +1642,14 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
 
     int originalClientPid = 0;
 
+   // bool isDisabled = isCameraDisabled(cameraId);
+   // ALOGE("Camera %s  ..1654 is isCameraDisabled: %d", cameraId.string(), isDisabled);
+       if (isCameraDisabled(cameraId)) {
+                //   ALOGE("Camera %s is disabled 1652 by system property", cameraId.string());
+                       // 返回设备不可用错误(或自定义错误码)
+                       return STATUS_ERROR_FMT(ERROR_DISABLED, "Camera %s is disabled", cameraId.string());
+               }
+
     ALOGI("CameraService::connect call (PID %d \"%s\", camera ID %s) for HAL version %s and "
             "Camera API version %d", clientPid, clientName8.string(), cameraId.string(),
             (halVersion == -1) ? "default" : std::to_string(halVersion).c_str(),
diff --git a/frameworks/av/services/camera/libcameraservice/CameraService.h b/frameworks/av/services/camera/libcameraservice/CameraService.h
@@ -100,6 +100,9 @@ public:
                         CameraService();
     virtual             ~CameraService();
 
+       bool isCameraDisabled(const android::String8& cameraId) const;
+
+
相关推荐
千里马学框架4 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone4 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc4 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
FLJwu4 天前
存储与固件量产实战01:运动相机TF卡量产翻车实录!V30≠4K可用,90%OEM踩中的隐形售后坑
经验分享·数码相机·相机
ttyyttemo4 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077004 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼4 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone4 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen4 天前
属性动画原理与高级动画实现
android·kotlin·canvas