このページでは、Photo Enclave の権限、ライブラリ、システムバックアップ設定、通信テストの結果を示します。「通信しない、データを集めない」という説明どおりかを判断する材料です。第三者による公式な評価ではありませんが、各項目にデータの出所と、インストール後に自分で確認する方法を書いています。
対象は 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 が自動で追加する署名レベルの権限で、アプリ内部のブロードキャストを保護するためのものです。
確認方法:インストール済みの 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 ですべてのデータをクラウドバックアップと端末間転送から除外しています。システムバックアップでも機種変更でも保管庫は移りません。新しい端末へ移すときは、アプリ内の「完全暗号化バックアップ」でファイルを書き出してください。そのファイルはあなたが決めたパスワードで保護され、パスワードは端末内にだけ残ります。
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 の行があります。
アプリが直接宣言しているライブラリ:
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」で確認できます。
Info.plist の利用目的の説明は 4 つだけです:カメラ、マイク、Face ID、「写真」への追加(書き込みのみ、読み取りなし)。写真ライブラリの読み取り、位置情報、連絡先、Bluetooth、バックグラウンドモード、App Transport Security の例外はありません。entitlements は空で、iCloud、プッシュ通知、App Group、関連ドメインはありません。拡張機能もありません。
確認方法:「設定 → プライバシーとセキュリティ → 写真 → Photo Enclave」の選択肢は「写真の追加のみ」と「なし」だけです。「設定 → アプリ → Photo Enclave」には、使ったカメラ、マイク、Face ID、写真以外の権限はありません。
Swift Package Manager、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」で確認できます。
保管庫のフォルダと偽装機能のキャンバスには NSURLIsExcludedFromBackupKey を付けており、iCloud バックアップにもパソコンへのバックアップにも入りません。設定はバックアップされるので、システムバックアップから復元すると設定は戻りますが、保管庫は戻りません。新しい端末へ移すときは、アプリ内の「完全暗号化バックアップ」でファイルを書き出してください。1.2.6 より前のシステムバックアップには、古い保管庫の内容が残っている場合があります。
次の 2 つは、私たちがストアの管理画面で記入した申告です。このページのデータと照らし合わせられます。iOS プロジェクトに PrivacyInfo.xcprivacy はありません。
方法:iOS に組み込まれた「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、Photo Enclave 1.2.6。レポートは現地時間でおよそ 12:18〜15:57 をカバーしていました。Photo Enclave はアクセス記録 10 件(カメラとマイク)、通信記録 0 件でした。同じレポートでは他の 6 個のアプリに合計 22 件の通信記録があり、この時間帯にレポートが通信を記録していたことがわかります。
写真ピッカーのように、システムがアプリの代わりに行う処理はシステム側の記録になります。
方法:adb でアプリのプロセスのネットワークグループ、ソケット、通信量の統計を見ます。USB デバッグをオンにし、Photo Enclave を前面に出したまま、下のコマンドを実行します。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 権限を持つアプリのプロセスには 3003(inet)グループが付きます。このプロセスにはありません。netstats にこの uid の通信量の記録はありません。一致した行は mUidCounterSetMap のもので、アプリが前面にあるかどうかを示すだけです。パソコンなし:システム設定のアプリ情報で Photo Enclave のデータ使用量(メーカーにより「モバイルデータ」「データ使用量」など)を見ます。0 のはずです。
私たちの結果:2026 年 10 月 24 日、Samsung Galaxy A03s(SM-A037W)、Android 13、当日インストールした 1.2.6.0。アプリで写真を 3 枚撮り、5 秒のビデオを録画してから上のコマンドを実行しました。出力はそのままです。当日インストールしたので、netstats はアプリの使用をすべてカバーしています。
このページについての質問や、ここと異なる結果が出た場合:support@src.studio