Contribute
Register

Native Brightness working without 'blinkscreen' using patched AppleBacklight.kext

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Thanks for the quick reply, Heres my ioreg
Yup. Easy to see that ApplePanel at PNLF->AppleIntelPanelA is using 'Default' because it does not recognize the display.

You should follow the instructions in post #1 to build a custom injector kext that will override this setting specifically for your display (vendor 0x610, device 0x9cc1).

It would be helpful if you knew the device-id of the original screen, because you could find the data that might work in AppleBacklight.kext's Info.plist (inside of ApplePanels).

Note: Your _UID is 14, so your panel key is probably going to be F14T9cc1. This makes sense as if you look at the ApplePanels data, you'll see F14T9cc3, 9cc5, 9cc7, 9cc9, etc. And all those data sets have a range that makes sense for the max of 0x710 that is typically used for HD3000.
 
Joined
May 17, 2013
Messages
8
Mac
Classic Mac
Mobile Phone
Yup. Easy to see that ApplePanel at PNLF->AppleIntelPanelA is using 'Default' because it does not recognize the display.

You should follow the instructions in post #1 to build a custom injector kext that will override this setting specifically for your display (vendor 0x610, device 0x9cc1).

It would be helpful if you knew the device-id of the original screen, because you could find the data that might work in AppleBacklight.kext's Info.plist (inside of ApplePanels).

Note: Your _UID is 14, so your panel key is probably going to be F14T9cc1. This makes sense as if you look at the ApplePanels data, you'll see F14T9cc3, 9cc5, 9cc7, 9cc9, etc. And all those data sets have a range that makes sense for the max of 0x710 that is typically used for HD3000.
Thanks alot... Will give it a shot, wondering if this info could make it easier for me though:
Did some digging,here is what i found: the original panel that came with the macbook was an LP133WX3 (9cc5) and the panel I currently have installed is a n133i6 (9ca0)
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Thanks alot... Will give it a shot, wondering if this info could make it easier for me though:
Did some digging,here is what i found: the original panel that came with the macbook was an LP133WX3 (9cc5) and the panel I currently have installed is a n133i6 (9ca0)
The data for F14T9cc5 is:
Code:
 <00110000 00200034 004d006e 009600c8 01060151 01ad020c 027b0300 039d045d 053e064c>
I just pulled that data directly from AppleBacklight.kext/Contents/Info.plist.

Your current panel is not 9ca0. Your ioreg shows it 9cc1.
 
Joined
May 17, 2013
Messages
8
Mac
Classic Mac
Mobile Phone
The data for F14T9cc5 is:
Code:
 <00110000 00200034 004d006e 009600c8 01060151 01ad020c 027b0300 039d045d 053e064c>
I just pulled that data directly from AppleBacklight.kext/Contents/Info.plist.

Your current panel is not 9ca0. Your ioreg shows it 9cc1.
Hi RehabMan thanks for the help so far, I decided to try fixing my macbook backlight today, but even despite reading your instructions in post one im still stuck as i am a total noob when it comes to macs, if its not too much to ask can you please clarify on what i need to do step by step, i do i have to patch the dsdt? and if so are there any values that need to be edited as i can see the patch is for the probook, and what else do i need to edit for the patched kext?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi RehabMan thanks for the help so far, I decided to try fixing my macbook backlight today, but even despite reading your instructions in post one im still stuck as i am a total noob when it comes to macs, if its not too much to ask can you please clarify on what i need to do step by step, i do i have to patch the dsdt? and if so are there any values that need to be edited as i can see the patch is for the probook, and what else do i need to edit for the patched kext?
No DSDT patch necessary (couldn't install one anyway on a real mac without "hacking" it with hack bootloader).

Run the script to create the injector. Then edit as I described previously. Important part is to have the correct display key F14T9cc1. You can then experiment with the data...

Install the generated injector kext (after editing) with Kext Wizard. Make sure you repair permissions (Disk Utility) and rebuild cache (DPCIManager).

You will also need to set kext-dev-mode=1 as your kext will be unsigned and will be rejected otherwise. On a real Mac you do that with nvram:
Code:
sudo nvram boot-args=kext-dev-mode=1
You can clear the setting with:
Code:
sudo nvram -d boot-args
Note: If you remove the kext-dev-mode=1, your injector kext will no longer load.
 
Joined
May 17, 2013
Messages
8
Mac
Classic Mac
Mobile Phone
No DSDT patch necessary (couldn't install one anyway on a real mac without "hacking" it with hack bootloader).

Run the script to create the injector. Then edit as I described previously. Important part is to have the correct display key F14T9cc1. You can then experiment with the data...

Install the generated injector kext (after editing) with Kext Wizard. Make sure you repair permissions (Disk Utility) and rebuild cache (DPCIManager).

You will also need to set kext-dev-mode=1 as your kext will be unsigned and will be rejected otherwise. On a real Mac you do that with nvram:
Code:
sudo nvram boot-args=kext-dev-mode=1
You can clear the setting with:
Code:
sudo nvram -d boot-args
Note: If you remove the kext-dev-mode=1, your injector kext will no longer load.

Thanks a lot, worked like a charm, my brightness is much better now,

a few more things i would like to know, whenever i want to change the data, do i have to do it through the script and reinstall the kext, fix permissions, rebuild cache and reboot every time, or is there an easier way, I'm assuming i can fix permissions for just the installed kext right? I also want to know what is the lowest and highest values my panel can take and how to go about editing the values manually.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Thanks a lot, worked like a charm, my brightness is much better now,

a few more things i would like to know, whenever i want to change the data, do i have to do it through the script and reinstall the kext, fix permissions, rebuild cache and reboot every time, or is there an easier way, I'm assuming i can fix permissions for just the installed kext right? I also want to know what is the lowest and highest values my panel can take and how to go about editing the values manually.
You can just edit your injector kext's Info.plist directly, then install via Kext Wizard again (repair permissions, rebuild cache, reboot). No need to run the script at this point.

With HD3000 (and HD4000) the range is 0-0x710. You will notice that the script generates right up to the max, where the built-in kext data from Apple usually sets the highest value at somewhat lower than that. Yes, most Macs are running with the max brightness less than what is possible. Notice that with the data I showed, the max was 0x64c (so 0x64c/0x710=89% of theoretical max).

The lowest value will depend on the panel... you'll need to experiment. When you use a value lower than what the panel can handle, you'll either get a flickering display or just black.
 
Joined
May 17, 2013
Messages
8
Mac
Classic Mac
Mobile Phone
You can just edit your injector kext's Info.plist directly, then install via Kext Wizard again (repair permissions, rebuild cache, reboot). No need to run the script at this point.

With HD3000 (and HD4000) the range is 0-0x710. You will notice that the script generates right up to the max, where the built-in kext data from Apple usually sets the highest value at somewhat lower than that. Yes, most Macs are running with the max brightness less than what is possible. Notice that with the data I showed, the max was 0x64c (so 0x64c/0x710=89% of theoretical max).

The lowest value will depend on the panel... you'll need to experiment. When you use a value lower than what the panel can handle, you'll either get a flickering display or just black.
ok, feels like im missing something how do you convert the string of data in the info.plist to those hexadecimal values and back, also after editing the script i cant seem to get the injector kext, only the AppleBacklight but it works okay.
 
Joined
May 17, 2013
Messages
8
Mac
Classic Mac
Mobile Phone
ok, feels like im missing something how do you convert the string of data in the info.plist to those hexadecimal values and back, also after editing the script i cant seem to get the injector kext, only the AppleBacklight but it works okay.
never mind, had been using the old script.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
ok, feels like im missing something how do you convert the string of data in the info.plist to those hexadecimal values and back,
Not sure what your question is... The data is right inside the injector's Info.plist.

also after editing the script i cant seem to get the injector kext, only the AppleBacklight but it works okay.
What do you mean by "cant seem to get the injector kext"?
 
Top