Skip to content

Instantly share code, notes, and snippets.

@RC128tech
Last active June 21, 2024 12:50
Show Gist options
  • Save RC128tech/028929727e3e7627169e7ee5d8a4e879 to your computer and use it in GitHub Desktop.
Save RC128tech/028929727e3e7627169e7ee5d8a4e879 to your computer and use it in GitHub Desktop.
UPDD macOS Touch Driver Enhancer
Hello all UPDD users,
I found a better solution to reinitialize the UPDD daemon without non-macOS tools.
It is tested with the UPDD version 6.00.771 on Mavericks and Mojave.
Before installing the driver, I set the date to 01-01-2038, the UNIX End-Of-The-World-Date.
I'm not sure if this made any difference, but I did it.
This is the shell script to use:
#!/usr/bin/env sh
echo PASSWORD | sudo -S kill `ps -U root | grep [u]pdd | awk '{print $1}'`
It took rather long to get this line together, but effectively it is a sudo kill which gets the process ID
using ps. The option -U root only uses the root process updd, there are also user processes starting with updd.
The -S option allows sudo to get the password from the echo command. Change PASSWORD to your system password.
After this worked sucessfully from Terminal and as script, I created a LaunchAgent:
This LaunchAgent starts the script every 180 seconds, so all 3 minutes the updd process is restarted.
You can change the value of StartInterval to your preferred restarting time in seconds.
If you are planning to use your touch device for a presentation, you may reduce the value.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.touch-base.updd.reinit.plist</string>
<key>Program</key>
<string>/Library/LaunchAgents/com.touch-base.updd.reinit.sh</string>
<key>ProgramArguments</key>
<array>
</array>
<key>StartInterval</key>
<integer>180</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Below are the exact values to change in /Library/Preferences/updd/db/updd.db
ID amf_user
1 admin 2074-07-18
2 local 2074-07-18
3 default 2074-07-18
ID updd_backup
468 skip_os_version_check 1
482 notify.oschange.msg 0
483 notify.oschange.link.win 0
484 notify.oschange.link.mac 0
560 registration.installable_until 2074-07-18
561 registration.support_until 2074-07-18
570 license.eval_click_limit 200
ID updd_setting
468 skip_os_version_check 1
482 notify.oschange.msg 0
483 notify.oschange.link.win 0
484 notify.oschange.link.mac 0
560 registration.XXX.installable_until 2074-07-18
561 registration.XXX.support_until 2074-07-18
570 license.XXX.eval_click_limit 200
582 claim_until 2074-07-18
XXX is the three-digit number of your installation.
For editing I used the Application 'SQLiteBrowser'. The uupd process has not to be killed during editing.
I used the date 2074-07-18 instead of 2099 because this value appeared several times in the file before
modification. With these settings the '5 days remaining' message disappears in the UPDD Console window.
I also tried various values instead of the 200, every change results in '100 clicks remaining'.
After editing the database file, delete the contents of the db/bkup folder and restart the computer.
There should be no exclamataion marks in the menu bar icons.
When you start the UPDD console, there should be no '5 days remaining' message.
For testing the LaunchAgent you can open Utilities/Activity Monitor. Make sure all processes are displayed.
Enter updd in the search field and search for the uupd process of user root. Remember the PID. After about
3 Minutes the PID should change. Then everything is working.
Now to the manual installation. Copy the shell script and the LaunchAgent to your Desktop.
Change in com.touch-base.updd.reinit.sh the expression PASSWORD to your system password.
Then open Utilities/Terminal and set it to root with
sudo -s
and enter your password.
Now enter this command line to move the database file to your desktop
and delete the contents of the database backup folder.
mv /Library/Preferences/updd/db/updd.db ~/Desktop | rm -Rf /Library/Preferences/updd/db/bkup/*
Now edit the database file updd.db. Then copy the file back and restore the permissions:
cp -f ~/Desktop/updd.db /Library/Preferences/updd/db/updd.db | chown root:wheel /Library/Preferences/updd/db/updd.db
Now copy the LaunchAgent and the shell script to /Library/LaunchAgents
cp ~/Desktop/com.touch-base.updd.reinit.plist /Library/LaunchAgents/com.touch-base.updd.reinit.plist
cp ~/Desktop/com.touch-base.updd.reinit.sh /Library/LaunchAgents/com.touch-base.updd.reinit.sh
Because the shell script contains your password readable, you may set the files to invisible:
chflags hidden /Library/LaunchAgents/com.touch-base.updd.reinit.plist
chflags hidden /Library/LaunchAgents/com.touch-base.updd.reinit.sh
Then restore the permissions:
chown root:wheel /Library/LaunchAgents/com.touch-base.updd.reinit.plist
chown root:wheel /Library/LaunchAgents/com.touch-base.updd.reinit.sh
Make the shell script executable and start the LaunchAgent:
chmod +x /Library/LaunchAgents/com.touch-base.updd.reinit.sh
launchctl load -w /Library/LaunchAgents/com.touch-base.updd.reinit.plist
You still have the files on the Desktop, perhaps if something doesn't work.
Thanks to all others who worked on UPDD.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment