Last active
April 8, 2020 03:22
-
-
Save fuzzylogiq/275d33833059a5a14770cd28d69a7792 to your computer and use it in GitHub Desktop.
Shows the differences in paths installed by two different OS X/macOS installers, with optional path(s) to restrict search to
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/python | |
| # encoding: utf-8 | |
| ''' | |
| diff_os.py | |
| Shows the differences in file paths installed by two macOS installer apps or esds | |
| Copyright (C) Ben Goodstein 2017 | |
| This program is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation, either version 3 of the License, or | |
| (at your option) any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| ''' | |
| import os | |
| import plistlib | |
| import subprocess | |
| import sys | |
| import atexit | |
| import glob | |
| import argparse | |
| ESDPATH = 'Contents/SharedSupport/InstallESD.dmg' | |
| our_mounts = [] | |
| @atexit.register | |
| def cleanup(): | |
| if our_mounts != []: | |
| print 'Cleaning up...' | |
| for mount in our_mounts: | |
| proc = subprocess.call(('/usr/bin/hdiutil', | |
| 'detach', | |
| '-force', | |
| '-quiet', | |
| mount)) | |
| print 'Done.' | |
| def mount(dmg): | |
| try: | |
| proc = subprocess.Popen(('/usr/bin/hdiutil', | |
| 'attach', | |
| '-plist', | |
| '-mountrandom', '/private/tmp', | |
| '-nobrowse', | |
| dmg), | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE) | |
| stdout, stderr = proc.communicate() | |
| except OSError as err: | |
| return | |
| if proc.returncode != 0: | |
| return stderr | |
| pliststr = stdout | |
| try: | |
| output = plistlib.readPlistFromString(pliststr) | |
| except: | |
| return False | |
| first = [x for x in output['system-entities'] if x.get('mount-point')][0] | |
| return first['mount-point'] | |
| def mount_os_installer(installer): | |
| internal_esd = os.path.join(installer, ESDPATH) | |
| if os.path.isfile(internal_esd): | |
| return mount(internal_esd) | |
| if os.path.isfile(installer): | |
| return mount(installer) | |
| def collate_boms(mounted_esd, dirs=[]): | |
| pkg_path = os.path.join(mounted_esd, 'Packages') | |
| pkgs = glob.glob(os.path.join(pkg_path, '*.pkg')) | |
| boms = [] | |
| paths = [] | |
| for pkg in pkgs: | |
| proc = subprocess.Popen(('/usr/sbin/pkgutil', | |
| '--bom', | |
| pkg), | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE) | |
| stdout, stderr = proc.communicate() | |
| if not proc.returncode: | |
| boms.append(stdout.strip()) | |
| for bom in boms: | |
| proc = subprocess.Popen(('/usr/bin/lsbom', | |
| '-s', | |
| bom), | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE) | |
| stdout, stderr = proc.communicate() | |
| if not proc.returncode: | |
| for line in stdout.splitlines(): | |
| line = line.lstrip('.').rstrip() | |
| for dir in dirs: | |
| if line.startswith(dir): | |
| paths.append(line) | |
| return paths | |
| def compare_boms(a, b): | |
| s = set(a) | |
| diff = [x for x in b if x not in s] | |
| return diff | |
| def main(): | |
| p = argparse.ArgumentParser(description='Shows the file path differences ' | |
| 'between two macOS installs') | |
| p.add_argument('--path', | |
| metavar='PATH', | |
| action='append', | |
| help='Paths to compare. Can be specified multiple times') | |
| p.add_argument('installers', | |
| metavar='INSTALLER', | |
| nargs=2, | |
| help='Path to an OSX/macOS installer. Can be the installer ' | |
| '.app or an InstallESD.dmg') | |
| args = p.parse_args() | |
| dmgs = [] | |
| dmgs_to_mount = args.installers | |
| paths = [''] | |
| if args.path: | |
| paths = args.path | |
| for dmg in dmgs_to_mount: | |
| dmg_dict = {} | |
| dmg_dict['installer'] = dmg | |
| dmg_dict['mount_point'] = mount_os_installer(dmg) | |
| if dmg_dict['mount_point']: | |
| our_mounts.append(dmg_dict['mount_point']) | |
| dmg_dict['paths'] = collate_boms(dmg_dict['mount_point'], paths) | |
| else: | |
| print 'Error mounting %s' % dmg | |
| sys.exit(1) | |
| dmgs.append(dmg_dict) | |
| print 'Present in %s but not %s:' % (dmgs[1]['installer'], dmgs[0]['installer']) | |
| diff = compare_boms(dmgs[0]['paths'], dmgs[1]['paths']) | |
| for path in diff: | |
| print '\033[1;32m' + path + '\033[0;m' | |
| print 'Present in %s but not %s:' % (dmgs[0]['installer'], dmgs[1]['installer']) | |
| diff = compare_boms(dmgs[1]['paths'], dmgs[0]['paths']) | |
| for path in diff: | |
| print '\033[1;31m' + path + '\033[0;m' | |
| if __name__ == '__main__': | |
| main() |
Author
Author
10.13.1 vs 10.13
$ ./diff_os.py /Users/Shared/osx_macos_installers/1013highsierra/Install\ macOS\ High\ Sierra.app /Applications/Install\ macOS\ High\ Sierra.app
/private/tmp/dmg.PVmFQL
/private/tmp/dmg.KwyBBN
Present in /Applications/Install macOS High Sierra.app but not /Users/Shared/osx_macos_installers/1013highsierra/Install macOS High Sierra.app:
/Applications/DVD Player.app/Contents/Resources/sk.lproj/LocalizedPlists/DiscInfo.plist
/Applications/DVD Player.app/Contents/Resources/zh_CN.lproj/LocalizedPlists/DiscInfo.plist
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-7-1.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-7-2.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-7-plus-1.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-7-plus-2.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-8-7.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-8-plus-3.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-x-1.icns
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-x-2.icns
/System/Library/CoreServices/Dock.app/Contents/Resources/handoff-badge-iphoneX.png
/System/Library/CoreServices/Dock.app/Contents/Resources/[email protected]
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/de.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/de.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/en.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/en.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/es.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/es.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/fr.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/fr.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/it.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/it.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ja.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ja.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/nl.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/nl.lproj/jarlauncher.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/de.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/en.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/es.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/fr.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/it.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/ja.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/nl.lproj/InfoPlist.strings
/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a037
/System/Library/Extensions/AppleSEPManager.kext/Contents/Resources
/System/Library/Extensions/AppleSEPManager.kext/Contents/Resources/SepApp.plist
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/Info.plist
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/MacOS
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/MacOS/AppleUSBVHCI
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/_CodeSignature
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/_CodeSignature/CodeResources
/System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBVHCI.kext/Contents/version.plist
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Apple Color Emoji.ttc.8113018_0.ATSD
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Apple Color Emoji.ttc.8113018_0.fontinfo
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Gurmukhi MN.ttc.167C4_0.ATSD
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Gurmukhi MN.ttc.167C4_0.fontinfo
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/de.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/de.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/en.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/en.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/es.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/es.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/fr.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/fr.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/it.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/it.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/ja.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/ja.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/nl.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/nl.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ar.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ca.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/cs.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/da.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/de.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/de.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/de.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/el.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/en.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/es.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/es.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/es.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/es_419.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/fi.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/fr.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/fr.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/fr.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/he.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/hi.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/hr.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/hu.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/id.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/it.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/it.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/it.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ja.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ja.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ja.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ko.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ms.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/nl.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/nl.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/nl.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/no.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/pl.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/pt.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/pt_PT.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ro.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/ru.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/sk.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/sv.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/th.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/tr.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/uk.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/vi.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/zh_CN.lproj/DefaultApp.nib
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/zh_TW.lproj/DefaultApp.nib
/System/Library/LaunchDaemons/com.apple.updateEFIDesktopPicture-apfs.plist
/System/Library/MultiversePlugins/shutdown.plugin
/System/Library/MultiversePlugins/shutdown.plugin/Contents
/System/Library/MultiversePlugins/shutdown.plugin/Contents/Info.plist
/System/Library/MultiversePlugins/shutdown.plugin/Contents/MacOS
/System/Library/MultiversePlugins/shutdown.plugin/Contents/MacOS/shutdown
/System/Library/MultiversePlugins/shutdown.plugin/Contents/_CodeSignature
/System/Library/MultiversePlugins/shutdown.plugin/Contents/_CodeSignature/CodeResources
/System/Library/MultiversePlugins/shutdown.plugin/Contents/version.plist
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/de.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/de.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/de.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/de.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/en.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/en.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/en.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/es.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/es.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/es.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/es.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/fr.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/fr.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/fr.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/fr.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/it.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/it.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/it.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/it.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/ja.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/ja.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/ja.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/ja.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/nl.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/nl.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/nl.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/nl.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/PassKitCore.framework/Versions/A/Resources/PeerPaymentMessageFallbackMedia.png
/System/Library/Sandbox/Profiles/com.apple.coreparsec.silhouette.sb
/private/var/db/Accessibility
/usr/libexec/firmwarecheckers/eficheck/EFIAllowListShipping.bundle/allowlists/MM71.88Z.0226.B00.1709290808.0.ealf
/usr/libexec/msutil
Present in /Users/Shared/osx_macos_installers/1013highsierra/Install macOS High Sierra.app but not /Applications/Install macOS High Sierra.app:
/Library/Raft
/Library/Raft/site-plugins
/Library/Raft/site-plugins/UIATouchBar-Plugin.py
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Dutch.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Dutch.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Dutch.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/English.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/English.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/French.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/French.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/French.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/German.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/German.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/German.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Italian.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Italian.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Italian.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Japanese.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Japanese.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Japanese.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Spanish.lproj
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Spanish.lproj/InfoPlist.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/Spanish.lproj/jarlauncher.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ar.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ca.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/cs.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/da.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/de.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/el.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/en.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/es.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/es_419.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/fi.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/fr.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/he.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/hi.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/hr.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/hu.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/id.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/it.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ja.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ko.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ms.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/nl.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/no.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/pl.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/pt.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/pt_PT.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ro.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/ru.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/sk.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/sv.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/th.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/tr.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/uk.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/vi.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/zh_CN.lproj/Default.strings
/System/Library/CoreServices/Jar Launcher.app/Contents/Resources/zh_TW.lproj/Default.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Dutch.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Dutch.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/English.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/English.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/French.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/French.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/German.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/German.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Italian.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Italian.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Japanese.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Japanese.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Spanish.lproj
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/Spanish.lproj/InfoPlist.strings
/System/Library/CoreServices/Java Web Start.app/Contents/Resources/en.lproj/JavaWebStart.strings
/System/Library/Extensions/TestDeviceVCOM.kext
/System/Library/Extensions/TestDeviceVCOM.kext/Contents
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/Info.plist
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/MacOS
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/MacOS/TestDeviceVCOM
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/_CodeSignature
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/_CodeSignature/CodeResources
/System/Library/Extensions/TestDeviceVCOM.kext/Contents/version.plist
/System/Library/Extensions/TestDeviceVCOMACMControl.kext
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/Info.plist
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/MacOS
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/MacOS/TestDeviceVCOMACMControl
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/_CodeSignature
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/_CodeSignature/CodeResources
/System/Library/Extensions/TestDeviceVCOMACMControl.kext/Contents/version.plist
/System/Library/Extensions/TestDeviceVCOMACMData.kext
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/Info.plist
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/MacOS
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/MacOS/TestDeviceVCOMACMData
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/Resources
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/Resources/English.lproj
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/Resources/English.lproj/Localizable.strings
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/_CodeSignature
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/_CodeSignature/CodeResources
/System/Library/Extensions/TestDeviceVCOMACMData.kext/Contents/version.plist
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Apple Color Emoji.ttc.5F33980_0.ATSD
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Apple Color Emoji.ttc.5F33980_0.fontinfo
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Gurmukhi MN.ttc.167B4_0.ATSD
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/FontInfo/Gurmukhi MN.ttc.167B4_0.fontinfo
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Dutch.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Dutch.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/English.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/English.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/French.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/French.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/German.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/German.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Italian.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Italian.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Japanese.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Japanese.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Spanish.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/Contents/Resources/Spanish.lproj/Localizable.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Dutch.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Dutch.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/English.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/English.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/French.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/French.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/German.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/German.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Italian.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Italian.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Japanese.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Japanese.lproj/Menu.strings
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Spanish.lproj
/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Spanish.lproj/Menu.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Dutch.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Dutch.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Dutch.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Dutch.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/English.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/English.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/English.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/French.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/French.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/French.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/French.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/German.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/German.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/German.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/German.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Italian.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Italian.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Italian.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Italian.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Japanese.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Japanese.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Japanese.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Japanese.lproj/OldJavaAlert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Spanish.lproj
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Spanish.lproj/Alert.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Spanish.lproj/InfoPlist.strings
/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Versions/A/Resources/Spanish.lproj/OldJavaAlert.strings
/usr/libexec/firmwarecheckers/eficheck/EFIAllowListShipping.bundle/allowlists/MM71.88Z.0224.B00.1708080033.0.ealf
Cleaning up...
Done.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Outputs the differences in file paths installed by two OSX/macOS installers. Sample output: