Last active
September 30, 2020 13:52
-
-
Save slhck/6629845 to your computer and use it in GitHub Desktop.
Remove all BlackBerry Desktop Manager traces from OS X. Found on http://supportforums.blackberry.com/t5/Desktop-Software-for-Mac/How-do-you-Remove-Desktop-Manager/td-p/463662
This file contains 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
#!/bin/bash -x | |
CALLERS_UID="$1" | |
REFCOUNT_PATH="$2" | |
DCALL_PATH="$3" | |
if [ $UID -ne 0 ]; then | |
# Test that the script is run as root. | |
echo "Script must run as root" | |
exit 1 | |
fi | |
if [ ! -x "$REFCOUNT_PATH" ]; then | |
echo "Ref tool not found" | |
exit 1 | |
fi | |
PKREF="`pkgutil --pkgs=com.rim.blackberrydesktopmanager.Application.pkg`" | |
if [ -d "/Library/Receipts/blackberrydesktopmanager.pkg" ] || [ ! -z ${PKREF} ]; #MAYBE THIS SHOULD BE /Library/Receipts/blackberrydesktopmanager.pkg INSTEAD? | |
then | |
#unregister the Desktop Manager App with BBLaunchAgent | |
/Library/Application\ Support/Blackberry/BBLaunchAgent.app -ndefault /Applications/BlackBerry\ Desktop\ Manager.app >> /dev/null | |
/bin/rm -fr "/Applications/BlackBerry Desktop Manager.app" | |
/bin/rm -fr "/Library/Receipts/blackberrydesktopmanager.pkg" | |
# Delete the Application Support folder and preferences for ALL users | |
/bin/rm -fr /Users/*"/Library/Application Support/BlackBerryDesktop/" | |
/bin/rm -f /Users/*"/Library/Preferences/com.rim.blackberrydesktopmanager.plist" | |
/bin/rm -fr /Users/*"/Library/Caches/com.rim.blackberrydesktopmanager" | |
/Library/Application\ Support/BlackBerry/BBLaunchAgent.app -ipndefault /Library/Application\ Support/BlackBerry/IPModemPasswordDialog.app >> /dev/null | |
/bin/rm -fr "/Library/Application Support/BlackBerry/IPModemPasswordDialog.app" | |
REFCOUNTVSP="`\"$REFCOUNT_PATH\" -unreferenceVSP`" | |
if [ ${REFCOUNTVSP} -eq 0 ]; then | |
/bin/rm -fr "/Library/Modem Scripts/RIM IP Modem.ccl" | |
/bin/rm -fr "/Library/Frameworks/RIM_VSP.framework" | |
/bin/rm -fr "/Library/Receipts/blackberryvsp.pkg" | |
/bin/rm -f "/Library/Preferences/com.rim.vsp.plist" | |
fi | |
REFCOUNTVSPDR="`\"$REFCOUNT_PATH\" -unreferenceVSPDR`" | |
if [ ${REFCOUNTVSPDR} -eq 0 ]; then | |
/bin/rm -fr "/System/Library/Extensions/RIMBBVSP.kext" | |
/bin/rm -fr "/Library/Receipts/blackberryvspdr.pkg" | |
/bin/rm -f "/Library/Preferences/com.rim.RIMBBVSP.plist" | |
fi | |
REFCOUNTDR="`\"$REFCOUNT_PATH\" -unreferenceDR`" | |
if [ ${REFCOUNTDR} -eq 0 ]; then | |
# unload the driver | |
if [ ! -x "$DCALL_PATH" ]; then | |
echo "DCAll tool not found" | |
else | |
DCALL_RESULT="`\"$DCALL_PATH\"`" | |
fi | |
fi | |
REFCOUNTFW="`\"$REFCOUNT_PATH\" -unreferenceFW`" | |
if [ ${REFCOUNTFW} -eq 0 ]; then | |
# BBLaunchAgent is run by the users, not root. We walk through all logged in users and | |
# attempt to quit the BBLaunchAgent just in case multiple users are logged in simultaneously. | |
for currentUser in `users`; do | |
sudo -u "${currentUser}" /bin/launchctl unload /Library/LaunchAgents/com.rim.BBLaunchAgent.plist | |
done | |
# NOTE: The previous loop might fail on 10.4 if the user name is >8 characters (the 'users' command | |
# on 10.4 returns only the first 8 characters of the user name!). So, we explicitly | |
# unload using the numeric userid just in case. | |
sudo -u "#${CALLERS_UID}" /bin/launchctl unload /Library/LaunchAgents/com.rim.BBLaunchAgent.plist | |
# stop the daemon that is run as root | |
/bin/launchctl unload /Library/LaunchDaemons/com.rim.BBDaemon.plist | |
/bin/rm -fr "/Library/Frameworks/RimBlackBerryUSB.framework" | |
/bin/rm -f "/Library/LaunchDaemons/com.rim.BBDaemon.plist" | |
/bin/rm -f "/Library/LaunchAgents/com.rim.BBLaunchAgent.plist" | |
/bin/rm -fr "/Library/Application Support/BlackBerry" | |
/bin/rm -fr "/Library/Receipts/blackberryframeworks.pkg" | |
/bin/rm -f "/Library/Preferences/com.rim.RimBlackBerryUSB.plist" | |
/bin/rm -f "/Library/Preferences/com.rim.RimLaunchAgent.plist" | |
/bin/rm -f /Users/*"/Library/Preferences/com.rim.RimLaunchAgent.plist" | |
fi | |
if [ ${REFCOUNTDR} -eq 0 ]; then | |
# unload the driver | |
KEXTSTATUS="`/sbin/kextunload -b com.rim.driver.BlackBerryUSBDriverInt`" | |
/bin/rm -fr "/System/Library/Extensions/BlackBerryUSBDriverInt.kext" | |
/bin/rm -fr "/System/Library/Extensions/RIMBBUSB.kext" | |
/bin/rm -fr "/Library/Receipts/blackberryusbdriverint.pkg" | |
/bin/rm -f "/Library/Preferences/com.rim.BlackBerryUSBDriverInt.plist" | |
/bin/rm -f "/Library/Preferences/com.rim.RIMBBUSB.plist" | |
fi | |
# SnowLeopard stores receipts differently then Leopard and vice versa. | |
# This unforunatly does not work on Leopard either so we need to support both receipt removal methods | |
# To get ride of SnowLeopard receipts: | |
/usr/sbin/pkgutil --forget "com.rim.blackberrydesktopmanager.BlackBerryFrameworks.pkg" | |
/usr/sbin/pkgutil --forget "com.rim.blackberrydesktopmanager.BlackBerryUSBDriver.pkg" | |
/usr/sbin/pkgutil --forget "com.rim.blackberrydesktopmanager.BlackBerryUSBDriverVSP.pkg" | |
/usr/sbin/pkgutil --forget "com.rim.blackberrydesktopmanager.BlackBerryVSP.pkg" | |
/usr/sbin/pkgutil --forget "com.rim.blackberrydesktopmanager.Application.pkg" | |
else | |
echo "Not Found" | |
exit 1 | |
fi | |
echo "Success" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment