這一頁列出密藏的權限、依賴庫、系統備份設定和連網測試結果,幫你判斷它是否如我們所說:不連網,不收集資料。這不是權威第三方評測,但每一項都寫明了資料從哪來,以及你裝好 App 後怎樣自己核對。
資料對應 Android 1.2.6.0(versionCode 1000260,套件名稱 studio.src.safecamera)和 iOS 1.2.6(建置編號 1260,Bundle ID src.studio.enclave)。其他版本的結果可能不同。
正式 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: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。
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」檢查。
Info.plist 裡只有四條權限說明:相機、麥克風、Face ID,以及向「照片」加入照片(只寫不讀)。沒有照片讀取、定位、聯絡人、藍牙、背景模式,也沒有 App Transport Security 例外。entitlements 為空:沒有 iCloud、推播、App Group 或關聯網域。App 不帶任何延伸功能。
怎麼核對:「設定 → 隱私權與安全性 → 照片 → 密藏」只有「僅加入照片」和「無」兩個選項。「設定 → App → 密藏」裡,除了用過的相機、麥克風、Face ID 和照片,沒有別的權限。
沒有 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」檢查。
保險庫目錄和偽裝功能的畫布都標記了 NSURLIsExcludedFromBackupKey,不進入 iCloud 備份和電腦備份。設定仍會備份,所以用系統備份回復後,設定會回來,保險庫不會。換手機請用 App 內的「完整加密備份」匯出檔案。1.2.6 之前做的系統備份裡可能仍有舊的保險庫內容。
下面兩處是我們在商店後台填寫的申報,可以和本頁的資料對照。iOS 專案裡沒有 PrivacyInfo.xcprivacy。
方法:用 iOS 內建的「App 隱私權報告」記錄 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 條網路記錄,表示這段時間報告在正常記錄網路活動。
照片挑選器這類由系統代為完成的操作,記在系統名下。
方法:用 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
INTERNET 權限的 App,行程會帶 3003(inet)群組。這裡沒有。netstats 裡沒有該 uid 的流量記錄。比對到的那一行來自 mUidCounterSetMap,只標記 App 是否在前景。不用電腦:在系統設定的 App 詳情裡看密藏的數據用量(各品牌叫法不同,如「行動數據」「數據用量」),應為 0。
我們的結果:2026 年 10 月 24 日,Samsung Galaxy A03s(SM-A037W),Android 13,當天新裝的 1.2.6.0。在 App 裡拍了 3 張照片、錄了一段 5 秒影片後執行上面的命令,輸出如上。App 是當天裝的,所以 netstats 涵蓋了它全部的使用。
對這一頁有疑問,或者你核對的結果和這裡不一致:support@src.studio