MacInitial.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #!/bin/bash
  2. if [ -f "/usr/bin/sudo" ]; then
  3. #Unload System Daemons
  4. echo "Unload System Daemons ..."
  5. [ "$(sudo whoami)" == "root" ] || return
  6. cd "/Volumes/$(ls -1 /Volumes|head -n1)/System/Library/LaunchDaemons"
  7. # I don't have Apple TV so disable AirPlay
  8. sudo launchctl unload -wF com.apple.AirPlayXPCHelper.plist
  9. # Disable Apple push notification
  10. sudo launchctl unload -wF com.apple.apsd.plist
  11. # Disable apple software updates
  12. sudo launchctl unload -wF com.apple.softwareupdate*
  13. # Disable DVD
  14. sudo launchctl unload -wF com.apple.dvdplayback.setregion.plist
  15. # Disable feedback
  16. sudo launchctl unload -wF com.apple.SubmitDiagInfo.plist
  17. sudo launchctl unload -wF com.apple.CrashReporterSupportHelper.plist
  18. sudo launchctl unload -wF com.apple.ReportCrash.Root.plist
  19. sudo launchctl unload -wF com.apple.GameController.gamecontrollerd.plist
  20. # Disable FTP
  21. sudo launchctl unload -wF com.apple.ftp-proxy.plist
  22. # Disable spindump
  23. sudo launchctl unload -wF com.apple.spindump.plist
  24. sudo launchctl unload -wF com.apple.metadata.mds.spindump.plist
  25. fi
  26. status=`csrutil status |cut -d":" -f2 |grep -io "enable\|disable"`
  27. [ "$status" != "disable" ] && "Please disable SIP. (csrutil disable)" && exit 1
  28. if [ -f "/usr/bin/sudo" ]; then
  29. sudo mount -uw /
  30. [ $? -ne 0 ] && echo "Mount / fail." && exit 1
  31. else
  32. mount -uw /
  33. [ $? -ne 0 ] && echo "Mount / fail." && exit 1
  34. fi
  35. RENAME(){
  36. [ -n "$1" ] || return
  37. for item in `find . -type f -maxdepth 1 -name "$1"`
  38. do
  39. [ -n "$item" ] || continue
  40. echo "$item" |grep -q "\.bak$"
  41. [ $? -eq 0 ] && continue
  42. echo "${item} --> ${item}.bak"
  43. if [ -f "/usr/bin/sudo" ]; then
  44. sudo mv "$item" "${item}.bak"
  45. else
  46. mv "$item" "${item}.bak"
  47. fi
  48. done
  49. }
  50. RENAMEBIN(){
  51. [ -f "/usr/bin/sudo" ] && [ -n "$1" ] && [ -f "$1" ] || return
  52. if [ ! -f "${1}.bak" ]; then
  53. echo "${1} --> ${1}.bak"
  54. sudo mv "${1}" "${1}.bak"
  55. fi
  56. if [ -f "${1}.bak" ]; then
  57. sudo ln -sf /usr/bin/true "$1"
  58. fi
  59. }
  60. RMAPP(){
  61. [ -n "$1" ] && [ -d "$1" ] || return
  62. echo "RM '$1'" && rm -rf "$1"
  63. }
  64. ## Unload System Agents
  65. echo "Unload System Agents ..."
  66. cd "/Volumes/$(ls -1 /Volumes|head -n1)/System/Library/LaunchAgents"
  67. # Disable AddressBook and Calendar
  68. RENAME "com.apple.AddressBook*"
  69. RENAME "com.apple.CalendarAgent.plist"
  70. # iCloud-related
  71. #RENAME "com.apple.iCloudUserNotifications.plist"
  72. #RENAME "com.apple.icbaccountsd.plist"
  73. #RENAME "com.apple.icloud.fmfd.plist"
  74. #RENAME "com.apple.cloud*"
  75. # Disable imclient (Facetime) and smth else
  76. RENAME "com.apple.imagent.plist"
  77. RENAME "com.apple.IMLoggingAgent.plist"
  78. # spindump (see also code below)
  79. RENAME "com.apple.spindump_agent.plist"
  80. RENAMEBIN "/usr/sbin/spindump"
  81. # Safari is not the only browser in the world
  82. RENAME "com.apple.safaridavclient.plist"
  83. RENAME "com.apple.SafariNotificationAgent.plist"
  84. # in future versions of OS X
  85. RENAME "com.apple.SafariCloudHistoryPushAgent.plist"
  86. # Explain these
  87. RENAME "com.apple.AirPlayUIAgent.plist"
  88. RENAME "com.apple.AirPortBaseStationAgent.plist"
  89. RENAME "com.apple.bird.plist"
  90. RENAME "com.apple.findmymacmessenger.plist"
  91. RENAME "com.apple.gamed.plist"
  92. RENAME "com.apple.parentalcontrols.check.plist"
  93. RENAME "com.apple.soagent.plist"
  94. RENAME "com.apple.SocialPushAgent.plist"
  95. RENAME "com.apple.DictationIM.plist"
  96. RENAME "com.apple.Maps.pushdaemon.plist"
  97. RENAME "com.apple.locationmenu.plist"
  98. RENAME "com.apple.java.updateSharing.plist"
  99. RENAME "com.apple.appstoreupdateagent.plist"
  100. RENAME "com.apple.softwareupdate_notify_agent.plist"
  101. RENAME "com.apple.ScreenReaderUIServer.plist"
  102. RENAME "com.apple.speech.*"
  103. # Remove System APP
  104. echo "Remove System APP ..."
  105. cd "/Volumes/$(ls -1 /Volumes|head -n1)/System/Applications"
  106. RMAPP "TV.app"
  107. RMAPP "News.app"
  108. RMAPP "Home.app"
  109. RMAPP "Books.app"
  110. RMAPP "Chess.app"
  111. RMAPP "Podcasts.app"
  112. RMAPP "Stocks.app"
  113. RMAPP "Music.app"