如何核对

2026年10月24日

这一页列出密藏的权限、依赖库、系统备份设置和联网测试结果,帮你判断它是否如我们所说:不联网,不收集数据。这不是权威第三方评测,但每一项都写明了数据从哪来,以及你装好应用后怎样自己核对。

数据对应 Android 1.2.6.0(versionCode 1000260,包名 studio.src.safecamera)和 iOS 1.2.6(构建号 1260,Bundle ID src.studio.enclave)。其他版本的结果可能不同。

Android 权限

正式 APK 合并所有库之后声明的权限:

$ aapt2 dump badging secureCam-release.apk
package: name='studio.src.safecamera' versionCode='1000260' versionName='1.2.6.0'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.RECORD_AUDIO'
uses-permission: name='android.permission.USE_BIOMETRIC'
uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' maxSdkVersion='32'
uses-permission: name='android.permission.READ_MEDIA_IMAGES'
uses-permission: name='android.permission.READ_MEDIA_VIDEO'
uses-permission: name='android.permission.READ_MEDIA_VISUAL_USER_SELECTED'
uses-permission: name='studio.src.safecamera.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'

没有 INTERNET,也没有 ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE 和 AD_ID。最后一行是 AndroidX 自动加入的签名级权限,只用来保护应用内部的广播。

怎么核对:从手机导出已安装的 APK,用 Android SDK 里的 aapt2 读取:

$ adb pull $(adb shell pm path studio.src.safecamera | grep base | cut -d: -f2) base.apk
$ aapt2 dump badging base.apk | grep uses-permission

Android 系统备份

清单里 android:allowBackup 为 false,另用 android:dataExtractionRules 把全部数据排除在云备份和换机直传之外。系统备份和换机都不会带走保险库。换手机请用应用内的「完整加密备份」导出文件,它由你设定的密码保护,密码只留在设备上。

1.2.6 之前已经存进 Google 账号的旧备份不会自动删除,可以在 Google 账号的设备备份设置里删掉。

怎么核对:用上一节导出的 base.apk:

$ aapt2 dump xmltree --file AndroidManifest.xml base.apk | grep -E 'allowBackup|dataExtractionRules'
        A: http://schemas.android.com/apk/res/android:allowBackup(0x01010280)=false
        A: http://schemas.android.com/apk/res/android:dataExtractionRules(0x0101063e)=@0x7f140000

输出里 allowBackup 为 false,并有一行 dataExtractionRules。

Android 依赖库

应用直接声明的依赖库:

androidx.appcompat:appcompat:1.7.1
androidx.camera:camera-camera2:1.6.2
androidx.camera:camera-core:1.6.2
androidx.camera:camera-lifecycle:1.6.2
androidx.concurrent:concurrent-futures:1.3.0
androidx.constraintlayout:constraintlayout:2.2.1
androidx.documentfile:documentfile:1.1.0
androidx.exifinterface:exifinterface:1.4.2
androidx.legacy:legacy-support-v4:1.0.0
androidx.lifecycle:lifecycle-extensions:2.2.0
com.google.android.material:material:1.14.0
com.google.android.play:review:2.0.2

没有广告、统计、崩溃上报或支付库。com.google.android.play:review 只用来请 Play 商店弹出评分框,评分由 Google Play 处理;play-services-basement、play-services-tasks 和 core-common 是它带进来的。应用里还有我们自己写的原生代码,随应用一起编译。

releaseRuntimeClasspath 解析后的全部 91 个库
androidx.activity:activity:1.8.0
androidx.annotation:annotation-experimental:1.4.1
androidx.annotation:annotation-jvm:1.8.1
androidx.annotation:annotation:1.8.1
androidx.appcompat:appcompat-resources:1.7.1
androidx.appcompat:appcompat:1.7.1
androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0
androidx.asynclayoutinflater:asynclayoutinflater:1.0.0
androidx.camera:camera-camera2-pipe:1.6.2
androidx.camera:camera-camera2:1.6.2
androidx.camera:camera-core:1.6.2
androidx.camera:camera-lifecycle:1.6.2
androidx.camera.featurecombinationquery:featurecombinationquery:1.6.2
androidx.cardview:cardview:1.0.0
androidx.collection:collection-jvm:1.4.2
androidx.collection:collection:1.4.2
androidx.concurrent:concurrent-futures-ktx:1.3.0
androidx.concurrent:concurrent-futures:1.3.0
androidx.constraintlayout:constraintlayout-core:1.1.1
androidx.constraintlayout:constraintlayout:2.2.1
androidx.coordinatorlayout:coordinatorlayout:1.1.0
androidx.core:core-backported-fixes:1.0.0
androidx.core:core-ktx:1.16.0
androidx.core:core-viewtree:1.0.0
androidx.core:core:1.16.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview:1.2.0
androidx.documentfile:documentfile:1.1.0
androidx.drawerlayout:drawerlayout:1.1.1
androidx.dynamicanimation:dynamicanimation:1.1.0
androidx.emoji2:emoji2-views-helper:1.3.0
androidx.emoji2:emoji2:1.3.0
androidx.exifinterface:exifinterface:1.4.2
androidx.fragment:fragment:1.5.4
androidx.graphics:graphics-shapes-android:1.0.1
androidx.graphics:graphics-shapes:1.0.1
androidx.interpolator:interpolator:1.0.0
androidx.legacy:legacy-support-core-ui:1.0.0
androidx.legacy:legacy-support-core-utils:1.0.0
androidx.legacy:legacy-support-v4:1.0.0
androidx.lifecycle:lifecycle-common:2.6.2
androidx.lifecycle:lifecycle-extensions:2.2.0
androidx.lifecycle:lifecycle-livedata-core:2.6.2
androidx.lifecycle:lifecycle-livedata:2.6.2
androidx.lifecycle:lifecycle-process:2.6.2
androidx.lifecycle:lifecycle-runtime:2.6.2
androidx.lifecycle:lifecycle-service:2.6.2
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2
androidx.lifecycle:lifecycle-viewmodel:2.6.2
androidx.loader:loader:1.0.0
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
androidx.media:media:1.0.0
androidx.print:print:1.0.0
androidx.profileinstaller:profileinstaller:1.4.0
androidx.recyclerview:recyclerview:1.2.1
androidx.resourceinspection:resourceinspection-annotation:1.0.1
androidx.savedstate:savedstate:1.2.1
androidx.slidingpanelayout:slidingpanelayout:1.0.0
androidx.startup:startup-runtime:1.1.1
androidx.swiperefreshlayout:swiperefreshlayout:1.0.0
androidx.tracing:tracing-android:1.3.0
androidx.tracing:tracing-ktx:1.3.0
androidx.tracing:tracing:1.3.0
androidx.transition:transition:1.5.0
androidx.vectordrawable:vectordrawable-animated:1.1.0
androidx.vectordrawable:vectordrawable:1.1.0
androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0
androidx.viewpager2:viewpager2:1.0.0
com.google.android.gms:play-services-basement:18.4.0
com.google.android.gms:play-services-tasks:18.2.0
com.google.android.material:material:1.14.0
com.google.android.play:core-common:2.0.4
com.google.android.play:review:2.0.2
com.google.auto.value:auto-value-annotations:1.6.3
com.google.dagger:dagger:2.59
com.google.errorprone:error_prone_annotations:2.15.0
com.google.guava:listenablefuture:1.0
jakarta.inject:jakarta.inject-api:2.0.1
javax.inject:javax.inject:1
org.jetbrains:annotations:23.0.0
org.jetbrains.kotlin:kotlin-bom:1.8.22
org.jetbrains.kotlin:kotlin-stdlib:2.2.10
org.jetbrains.kotlinx:atomicfu-jvm:0.28.0
org.jetbrains.kotlinx:atomicfu:0.28.0
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0
org.jspecify:jspecify:1.0.0

怎么核对:正式包经过代码压缩和混淆,依赖库不容易从安装包里直接看出来。应用实际有没有联网,可以用下面的「联网测试:Android」检查。

iPhone 与 iPad 权限

Info.plist 里只有四条权限说明:相机、麦克风、Face ID,以及向「照片」添加照片(只写不读)。没有相册读取、定位、通讯录、蓝牙、后台模式,也没有 App Transport Security 例外。entitlements 为空:没有 iCloud、推送、App Group 或关联域名。应用不带任何扩展。

怎么核对:「设置 → 隐私与安全性 → 照片 → 密藏」只有「仅添加照片」和「无」两个选项。「设置 → App → 密藏」里,除了用过的相机、麦克风、Face ID 和照片,没有别的权限。

iOS 依赖库

没有 Swift Package、CocoaPods 或 Carthage 依赖。应用只链接系统框架、libc++,以及随应用编译的自有静态库 libClientLib_IOS.a(已并入二进制,不单独出现)。下面是 1.2.6 正式构建的 otool -L 输出,每一项都在 /System/Library/Frameworks 或 /usr/lib 下。

动态库
$ otool -L enclave.app/enclave
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2200.27.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 5027.0.69)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1359.0.0)
/System/Library/Frameworks/AVFAudio.framework/AVFAudio (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0)
/System/Library/Frameworks/Combine.framework/Combine (compatibility version 1.0.0, current version 3023.0.0)
/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 5027.0.69)
/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 2050.0.0)
/System/Library/Frameworks/CoreImage.framework/CoreImage (compatibility version 1.0.0, current version 7.0.0)
/System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 3350.77.1)
/System/Library/Frameworks/CoreVideo.framework/CoreVideo (compatibility version 1.2.0, current version 758.27.0)
/System/Library/Frameworks/CryptoKit.framework/CryptoKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/ImageIO.framework/ImageIO (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication (compatibility version 1.0.0, current version 2319.12.210)
/System/Library/Frameworks/Metal.framework/Metal (compatibility version 1.0.0, current version 382.5.3, weak)
/System/Library/Frameworks/Photos.framework/Photos (compatibility version 1.0.0, current version 912.20.123)
/System/Library/Frameworks/PhotosUI.framework/PhotosUI (compatibility version 1.0.0, current version 912.20.123)
/System/Library/Frameworks/QuartzCore.framework/QuartzCore (compatibility version 1.2.0, current version 1223.6.12)
/System/Library/Frameworks/Security.framework/Security (compatibility version 1.0.0, current version 62460.2.3)
/System/Library/Frameworks/SwiftUI.framework/SwiftUI (compatibility version 1.0.0, current version 8.0.85)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 9127.0.85)
/System/Library/Frameworks/VideoToolbox.framework/VideoToolbox (compatibility version 1.0.0, current version 3350.77.1)
/usr/lib/swift/libswiftAVFoundation.dylib (compatibility version 1.0.0, current version 2450.77.1)
/usr/lib/swift/libswiftCore.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 482.102.0, weak)
/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0)
/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 3.0.0, weak)
/usr/lib/swift/libswiftCoreLocation.dylib (compatibility version 1.0.0, current version 57.0.0, weak)
/usr/lib/swift/libswiftCoreMIDI.dylib (compatibility version 1.0.0, current version 6.0.0, weak)
/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 428.0.10, weak)
/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 1605.0.2)
/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 382.5.3, weak)
/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 10.0.0, weak)
/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 973.1.0)
/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 5.0.0, weak)
/usr/lib/swift/libswiftSpatial.dylib (compatibility version 1.0.0, current version 1.0.0, weak)
/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 919.0.1)
/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 167.0.2, weak)
/usr/lib/swift/libswift_Concurrency.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1090.0.0)
/usr/lib/swift/libswiftsimd.dylib (compatibility version 1.0.0, current version 25.0.0, weak)
/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3350.77.1)

怎么核对:App Store 版本的安装包普通用户拿不到,这一项没法自己核对。应用实际有没有联网,可以用下面的「联网测试:iPhone」检查。

iOS 系统备份

保险库目录和伪装功能的画布都标记了 NSURLIsExcludedFromBackupKey,不进入 iCloud 备份和电脑备份。设置仍会备份,所以用系统备份恢复后,设置会回来,保险库不会。换手机请用应用内的「完整加密备份」导出文件。1.2.6 之前做的系统备份里可能仍有旧的保险库内容。

商店里的隐私申报

下面两处是我们在商店后台填写的申报,可以和本页的数据对照。iOS 工程里没有 PrivacyInfo.xcprivacy。

联网测试:iPhone

方法:用 iOS 自带的「App 隐私报告」记录应用的网络活动。

  1. 「设置 → 隐私与安全性 → App 隐私报告」,打开。报告只记录打开之后的活动。
  2. 正常使用密藏,包括应用内拍照和录像。
  3. 回到 App 隐私报告:密藏出现在「数据与传感器访问」里,说明报告在记录它;它不出现在「App 网络活动」里。
  4. 想看原始记录:在报告底部点「存储 App 隐私报告」,传到电脑,筛出密藏的行。网络记录的类型是 networkActivity。
$ grep src.studio.enclave App_Privacy_Report_v4_*.ndjson > enclave.ndjson
$ grep -o '"type":"[a-zA-Z]*"' enclave.ndjson | sort | uniq -c
  10 "type":"access"

我们的结果:2026 年 10 月 24 日,iPhone 15 Pro,iOS 27.0.1,密藏 1.2.6。报告覆盖当地时间约 12:18 到 15:57。密藏有 10 条访问记录(相机和麦克风),0 条网络记录。同一份报告里另有 6 个应用共 22 条网络记录,说明这段时间报告在正常记录网络活动。

照片选择器这类由系统代为完成的操作,记在系统名下。

联网测试:Android

方法:用 adb 查看应用进程的网络权限组、socket 和流量统计。打开 USB 调试,让密藏停在前台,运行下面的命令。把 10041 换成你设备上显示的 userId。

$ adb shell dumpsys package studio.src.safecamera | grep -E 'userId|versionName'
    userId=10041
    versionName=1.2.6.0
$ adb shell cat /proc/$(adb shell pidof studio.src.safecamera)/status | grep Groups
Groups:	9997 20041 50041
$ adb shell cat /proc/net/tcp /proc/net/tcp6 /proc/net/udp /proc/net/udp6 | awk '$8==10041' | wc -l
0
$ adb shell dumpsys netstats detail | grep 'uid=10041'
    uid=10041 set=1

不用电脑:在系统设置的应用详情里看密藏的流量使用(各品牌叫法不同,如「移动数据」「流量使用情况」),应为 0。

我们的结果:2026 年 10 月 24 日,Samsung Galaxy A03s(SM-A037W),Android 13,当天新装的 1.2.6.0。在应用里拍了 3 张照片、录了一段 5 秒视频后运行上面的命令,输出如上。应用是当天装的,所以 netstats 覆盖了它全部的使用。

联系

对这一页有疑问,或者你核对的结果和这里不一致:support@src.studio