MASTG-TECH-0138: Converter Arquivos Plist para JSON
Você pode converter arquivos Plist, como Info.plist ou PrivacyInfo.xcprivacy (também um arquivo Plist apesar da extensão), para o formato JSON para facilitar a legibilidade e análise.
Usando plutil¶
Use Plutil para converter qualquer arquivo Plist, como PrivacyInfo.xcprivacy, para o formato JSON:
plutil -convert json -o PrivacyInfo.xcprivacy.json SocialApp.app/PrivacyInfo.xcprivacy
Usando plistlib¶
Use o módulo plistlib integrado ao Python para converter qualquer arquivo Plist, como PrivacyInfo.xcprivacy, para o formato 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)
Que produz:
{
"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",
...
]
}
Usando IPSW¶
Use ipsw para converter qualquer arquivo Plist, como Info.plist, para o formato 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"
],
...
}