Skip to content

System Info Display Fix 1.0.3

Latest

Choose a tag to compare

@sahinkaa sahinkaa released this 29 Aug 11:36
97870ad

System Info Display Fix 1.0.3

Version 1.0.3 is an iOS / iPadOS 16.x-only release.

It replaces the runtime hook/unhook approach used by 1.0 and 1.0.1 with a direct fix for the known System Info binary.

What changed

System Info's Display setup is disabled before it can run

System Info modifies DBSSettingsController when Preferences starts. On iOS 16 this can corrupt the dynamically managed Display & Brightness specifier table and cause Settings to abort with an invalid table-row update.

1.0.3 disables the seven calls responsible for System Info's Display integration in the known binary:

  • four class_addMethod calls
  • three MSHookMessageEx calls

This prevents System Info from installing its legacy Display specifiers, brightness-change and backlight-value hooks.

The rest of System Info remains enabled.

Intentionally unavailable in Display & Brightness

  • System Info Display resolution
  • System Info backlight Power

Those are part of the legacy Display integration being disabled.

Safer binary matching and RootHide layout support

The installer no longer assumes that the arm64/arm64e slice begins at one fixed offset in the outer SystemInfo.dylib file.

Instead it finds the DBSSettingsController marker and validates the seven expected instructions relative to it. This allows the same known System Info slice to be recognized both in the original universal binary and after a conversion tool thins or relocates that slice, as conversion tools can do.

Known modern slice UUIDs:

  • arm64: 257015ED-007B-3107-8E02-E7027F521C61
  • arm64e: 697D21F4-34BD-37EA-9805-28C58258A098

If no matching modern slice is found, installation aborts rather than patching an unknown binary.

After patching, SystemInfo.dylib is re-signed with ldid. Removing the package restores the original instructions and re-signs System Info.

Compatibility

  • iOS / iPadOS 16.x only
  • arm64 and arm64e
  • matching System Info binary listed above
  • normal rootless jailbreak environments
  • RootHide after conversion of the rootless iphoneos-arm64 package with RootHide Patcher

iOS 17 is not supported by 1.0.3. The package declares firmware (<< 17.0) so package managers should refuse installation on iOS 17 and later.

Restart SpringBoard prompt

When installed through a GUI package manager that supports Debian/Cydia finish states, 1.0.3 requests Restart SpringBoard after a successful install and after removal. Plain apt/dpkg installs still require a manual respring.

Package

com.sahinkaa.systeminfodisplayfix_1.0.3_iphoneos-arm64.deb

Credits

Fix by sahinkaa, coded with Codex.

Original System Info tweak and development by ARX8x.

Testing and crash reports: WesterCream and benasan.

RootHide installation

1.0.3 is distributed as the same normal rootless iphoneos-arm64 package as earlier releases. Convert it with RootHide Patcher, then install the resulting iphoneos-arm64e package.

Although 1.0.3 no longer injects its own compatibility dylib, its maintainer scripts are RootHide-aware: they locate System Info inside the active .jbroot and match the thinned/relocated SystemInfo slice dynamically instead of relying on fixed outer-file offsets.

The package requests Restart SpringBoard using the standard Debian/Cydia finish state. Whether a conversion/installer front end shows a restart button depends on whether that front end exposes the finish-state protocol; otherwise respring manually after a successful install.