Filza 27.2 worse_query: public and developer builds

This commit is contained in:
admin committed 2026-11-11 03:40:37 +08:00
commit 91a6adf723
267 files changed
+42015

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
#!/bin/zsh
set -euo pipefail
if (( $# < 1 || $# > 2 )); then
echo "usage: $0 <device-udid> [output.plist]" >&2
exit 64
fi
UDID="$1"
OUTPUT="${2:-/tmp/MCMIdentifiers.plist}"
PYMOBILEDEVICE3="${PYMOBILEDEVICE3:-pymobiledevice3}"
TEMP_JSON="$(mktemp /tmp/filza-mcm-apps.XXXXXX.json)"
trap 'trash "$TEMP_JSON"' EXIT
"$PYMOBILEDEVICE3" apps list --type Any --udid "$UDID" > "$TEMP_JSON"
python3 - "$TEMP_JSON" "$OUTPUT" <<'PY'
import json
import plistlib
import re
import sys
source, output = sys.argv[1:]
records = json.load(open(source, "r", encoding="utf-8"))
safe = re.compile(r"^[A-Za-z0-9._-]{1,255}$")
apps = set()
groups = set()
for map_key, record in records.items():
if not isinstance(record, dict):
continue
identifier = record.get("CFBundleIdentifier") or map_key
if isinstance(identifier, str) and safe.fullmatch(identifier):
apps.add(identifier)
containers = record.get("GroupContainers")
if isinstance(containers, dict):
groups.update(key for key in containers if isinstance(key, str) and safe.fullmatch(key))
catalog = {
"AppData": sorted(apps),
"AppGroups": sorted(groups),
"ExtensionData": [],
"VPNData": [],
"ServiceData": [],
"SystemData": [],
"SystemGroups": [],
"ProtectedData": [],
}
with open(output, "wb") as stream:
plistlib.dump(catalog, stream, sort_keys=False)
print(f"wrote {output}: app_data={len(apps)} app_groups={len(groups)}")
PY