• Stars
    star
    153
  • Rank 243,368 (Top 5 %)
  • Language
    C
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Windows infrastructure support for Apple DFR (Touch Bar)

Touch Bar (DFR) Display Driver for Windows

This driver implements custom display functionality for Apple Touch Bar (DFR) on Windows 10. Touch Bar is a USB composite device with two configurations. The first configuration implements basic function and media key input. Windows always takes the first configuration by default.

With proper configuration in the USB composite device driver stack, it is possible to select the second configuration for achieving advanced display and input functionalities.

This driver implements the display (iBridge Display). The composition device also exposes a HID-compliant Touch Pad (actually, a Touch Screen). It does report Y-axis data but such data are useless due to the form factor of Touch Bar. For more information about the HID digitizer, see DFRContentHost for further details.

Motivation

Keep myself busy during the last few weeks of my internship (thank you LinkedIn & Microsoft)

I should register this project to //oneweek/ next time

Installation

No official signed binary will be built at this moment. To build the driver, a few software needs to be installed including Visual Studio 2019 (with C/C++ workload) and Windows 10 Driver Kit, Version 1903. Install DFRUsbCcgp.inf for the "Apple Touch Bar" device first, then install DFRDisplayKm.inf for the "iBridge Display" device.

You need to turn off Secure Boot as described in the Apple Knowledge Base.

IOCTLs

Two IOCTLs are provided:

  • IOCTL_DFR_UPDATE_FRAMEBUFFER: Update the FrameBuffer.
  • IOCTL_DFR_CLEAR_FRAMEBUFFER: Clear the FrameBuffer.

Check the badly-written user-mode application example DFRDisplayUm.Utility.Console for detailed usage.

Known Caveats

  • Only Apple T2-based MacBook Pro(s) are confirmed supported. T1 support is added but not yet tested.
  • The driver might fails to load on T2 cold boot. Reboot the computer once and it should work.
  • UDCL read acknowledgement is implemented, but I have not yet intensively tested.
  • FrameBuffer update/clear are synchronous calls.

License

Copyright (c) Bingxing Wang. All rights reserved.

Licensed under the MIT License.

More Repositories

1

mac-precision-touchpad

Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
C
8,957
star
2

EnergyStar

A terrible application setting SV2 Efficiency Mode for inactive Windows apps and user background apps
C#
2,237
star
3

NintendoSwitchPkg

WIP UEFI EDK2 Implementation for Nintendo Switch or generic Tegra210 platforms
C
250
star
4

PrimeG2Pkg

Running Windows on smartphone is not new. How about a calculator?
C
78
star
5

boot-shim

Bootstraps ARM32/ARM64 ELF payloads on Qualcomm Windows platforms
C
77
star
6

AcpiS0ixPatcher

Patches ACPI table to force enable S0ix on every platform
C
55
star
7

qemu

Qemu with Apple Silicon support, based on the HVF patch from Alex with minor bug fixes
C
40
star
8

SynapticsTouch

Synaptics RMI4 I2C F12 Touch Controller Driver for Lumia 950 XL and OnePlus 6T
C
31
star
9

hyperv-lk

Little Kernel for Hyper-V arm64 Guest
C
29
star
10

lk

Experimental Little Kernel Android Bootloader for selected Lumia devices
C
22
star
11

DFRContentHost

DFR user-mode display host based on Avalonia XAML UI Framework
C#
19
star
12

TapticEngineToast

Enables MacBook trackpad haptic feedback for Windows toast notifications
C#
18
star
13

BluetoothAudioCodecInspector

Inspects Windows Bluetooth A2DP Codec without WPA tooling
C#
18
star
14

Coreboot

Display-enabled Nintendo Switch Coreboot
C
17
star
15

DCompAdventure

C#
17
star
16

DeviceTreeBus

A static-enumerated Windows bus driver that recognizes Flattened Device Tree (FDT)
C
15
star
17

ikvm

Readonly mirror of IKVM on .NET Core 3.1
C#
14
star
18

boot-shim-tegra-3

Boot Shim with a Tegra 3 (Surface RT) specific patch
C
10
star
19

monaco-mediawiki

Experimental Monaco editor on MediaWiki
TypeScript
7
star
20

MediaWiki-Sm2Shim

Yet another FlashMP3 Shim for MediaWiki, based on SoundManager2
TypeScript
6
star
21

Substrate

eXtensible Moegirlpedia Distributed copY System (xmdys)
C#
3
star
22

MmixCaptcha

MMIX Captcha Release Repository
PHP
1
star
23

imbushuo

1
star
24

FaceReplyBot

A useless and boring telegram bot written in powershell
PowerShell
1
star