MASTG-TECH-0138: 将 Plist 文件转换为 JSON
您可以将 Plist 文件(例如Info.plist
或PrivacyInfo.xcprivacy
(即使扩展名不同,也是 Plist 文件))转换为 JSON 格式,以便更轻松地阅读和分析。
使用 plutil¶
使用 Plutil 将任何 Plist 文件(例如 PrivacyInfo.xcprivacy
)转换为 JSON 格式
plutil -convert json -o PrivacyInfo.xcprivacy.json SocialApp.app/PrivacyInfo.xcprivacy
使用 plistlib¶
使用 Python 的内置 plistlib 模块将任何 Plist 文件(例如PrivacyInfo.xcprivacy
)转换为 JSON 格式
import plistlib
import json
with open('SocialApp.app/PrivacyInfo.xcprivacy', 'rb') as fp:
data = plistlib.load(fp)
with open('PrivacyInfo.json', 'w', encoding='utf-8') as fp:
json.dump(data, fp, indent=2, ensure_ascii=False)
输出如下:
{
"NSPrivacyAccessedAPITypes": [
{
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryUserDefaults",
"NSPrivacyAccessedAPITypeReasons": [
"CA92.1",
"1C8F.1",
"C56D.1"
]
},
...
],
"NSPrivacyCollectedDataTypes": [
{
"NSPrivacyCollectedDataType": "NSPrivacyCollectedDataTypeName",
"NSPrivacyCollectedDataTypeLinked": true,
"NSPrivacyCollectedDataTypePurposes": [
"NSPrivacyCollectedDataTypePurposeAppFunctionality",
"NSPrivacyCollectedDataTypePurposeOther"
],
"NSPrivacyCollectedDataTypeTracking": false
},
...
],
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"trk-v2.socialapp.com",
"trk-v2.socialapp.us",
...
]
}
使用 IPSW¶
使用 ipsw 将任何 Plist 文件(例如 Info.plist
)转换为 JSON 格式
$ ipsw plist ./Info.plist
{
"BuildMachineOSBuild": "23B74",
"CFBundleDevelopmentRegion": "en",
"CFBundleExecutable": "MASTestApp",
"CFBundleIdentifier": "org.owasp.mastestapp.MASTestApp",
"CFBundleInfoDictionaryVersion": "6.0",
"CFBundleName": "MASTestApp",
"CFBundlePackageType": "APPL",
"CFBundleShortVersionString": "1.0",
"CFBundleSupportedPlatforms": [
"iPhoneOS"
],
...
}