如何核對

2026年10月24日

這一頁列出密藏的權限、依賴庫、系統備份設定和連網測試結果,幫你判斷它是否如我們所說:不連網,不收集資料。這不是權威第三方評測,但每一項都寫明了資料從哪來,以及你裝好 App 後怎樣自己核對。

資料對應 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 自動加入的簽章級權限,只用來保護 App 內部的廣播。

怎麼核對:從手機匯出已安裝的 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 把全部資料排除在雲端備份和換機直傳之外。系統備份和換機都不會帶走保險庫。換手機請用 App 內的「完整加密備份」匯出檔案,它由你設定的密碼保護,密碼只留在裝置上。

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 依賴庫

App 直接宣告的依賴庫:

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 是它帶進來的。App 裡還有我們自己寫的原生程式碼,隨 App 一起編譯。

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

怎麼核對:正式包經過程式碼壓縮和混淆,依賴庫不容易從安裝包裡直接看出來。App 實際有沒有連網,可以用下面的「連網測試:Android」檢查。

iPhone 與 iPad 權限

Info.plist 裡只有四條權限說明:相機、麥克風、Face ID,以及向「照片」加入照片(只寫不讀)。沒有照片讀取、定位、聯絡人、藍牙、背景模式,也沒有 App Transport Security 例外。entitlements 為空:沒有 iCloud、推播、App Group 或關聯網域。App 不帶任何延伸功能。

怎麼核對:「設定 → 隱私權與安全性 → 照片 → 密藏」只有「僅加入照片」和「無」兩個選項。「設定 → App → 密藏」裡,除了用過的相機、麥克風、Face ID 和照片,沒有別的權限。

iOS 依賴庫

沒有 Swift Package、CocoaPods 或 Carthage 依賴。App 只連結系統框架、libc++,以及隨 App 編譯的自有靜態庫 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 版本的安裝包一般使用者拿不到,這一項沒辦法自己核對。App 實際有沒有連網,可以用下面的「連網測試:iPhone」檢查。

iOS 系統備份

保險庫目錄和偽裝功能的畫布都標記了 NSURLIsExcludedFromBackupKey,不進入 iCloud 備份和電腦備份。設定仍會備份,所以用系統備份回復後,設定會回來,保險庫不會。換手機請用 App 內的「完整加密備份」匯出檔案。1.2.6 之前做的系統備份裡可能仍有舊的保險庫內容。

商店裡的隱私申報

下面兩處是我們在商店後台填寫的申報,可以和本頁的資料對照。iOS 專案裡沒有 PrivacyInfo.xcprivacy。

連網測試:iPhone

方法:用 iOS 內建的「App 隱私權報告」記錄 App 的網路活動。

  1. 「設定 → 隱私權與安全性 → App 隱私權報告」,開啟。報告只記錄開啟之後的活動。
  2. 正常使用密藏,包括 App 內拍照和錄影。
  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 個 App 共 22 條網路記錄,表示這段時間報告在正常記錄網路活動。

照片挑選器這類由系統代為完成的操作,記在系統名下。

連網測試:Android

方法:用 adb 查看 App 行程的網路權限群組、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

不用電腦:在系統設定的 App 詳情裡看密藏的數據用量(各品牌叫法不同,如「行動數據」「數據用量」),應為 0。

我們的結果:2026 年 10 月 24 日,Samsung Galaxy A03s(SM-A037W),Android 13,當天新裝的 1.2.6.0。在 App 裡拍了 3 張照片、錄了一段 5 秒影片後執行上面的命令,輸出如上。App 是當天裝的,所以 netstats 涵蓋了它全部的使用。

聯絡

對這一頁有疑問,或者你核對的結果和這裡不一致:support@src.studio