Skip to content

zhuowei/MacUptimeChanger

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

A macOS kext to modify the system's uptime.

$ uname -a
Darwin local 18.0.0 Darwin Kernel Version 18.0.0: Fri May 25 16:54:22 PDT 2018; root:xnu-4903.200.199.11.1~1/RELEASE_X86_64 x86_64
$ date
Wed Jul 25 23:48:52 EDT 2018
$ sudo sysctl kern.changeboottime=-4861708948
kern.changeboottime: 1532575384 -> -4861708948
$ uptime
23:48  up 74007 days, 22:31, 4 users, load averages: 0.89 0.97 1.27

Usage

This makes your computer unstable. Do NOT run on a computer you care about.

Disable SIP, Build in Xcode, then

sudo kextunload -b com.worthdoingbadly.UptimeChanger
sudo chown -R root:wheel UptimeChanger.kext
sudo kextutil UptimeChanger.kext
sudo sudo sysctl kern.changeboottime=<unix timestamp of system boot>

Note: setting the timestamp to a negative value will cause ssh to fail with

select: invalid argument

Setting it back fixes it.

Development notes

Built in Xcode 10 beta 1 on macOS 10.14 developer beta 1.

Recalculate dependencies with

kextlibs -xml UptimeChanger.kext

and pasting the result into Info.plist

License

My code is licensed under the Creative Commons CC0 license; do whatever you want with it.

kernel_resolver.c and kernel_resolver.h are from https://github.com/jzdziarski/kernelresolver, and is copyright Snare and Jonathan Zdziarski. Ask them for the license.

About

Changes the result of macOS's `uptime` command with a kernel extension

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages