MacInitial.sh 4.0 KB

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