iPhone 6 (Plus) serials ending in GXXX

The links to the Technical Specifications of the new iPhone 6 (Plus) went up live and here they are:

iPhone 6

G5MG – iPhone 6
G5MD – iPhone 6
G5MF – iPhone 6
G5MJ – iPhone 6
G5MK – iPhone 6
G5MH – iPhone 6
G5MC – iPhone 6
G5MN – iPhone 6
G5ML – iPhone 6
G5MP – iPhone 6
G5MM – iPhone 6
G5N0 – iPhone 6
G5MW – iPhone 6
G5MV – iPhone 6
G5MQ – iPhone 6
G5MY – iPhone 6
G5MT – iPhone 6
G5MR – iPhone 6

iPhone 6 Plus

G5QP – iPhone 6 Plus
G5QG – iPhone 6 Plus
G5QH – iPhone 6 Plus
G5QK – iPhone 6 Plus
G5QR – iPhone 6 Plus
G5QL – iPhone 6 Plus
G5QQ – iPhone 6 Plus
G5QF – iPhone 6 Plus
G5QJ – iPhone 6 Plus
G5QN – iPhone 6 Plus
G5QM – iPhone 6 Plus
G5QW – iPhone 6 Plus
G5QY – iPhone 6 Plus
G5QV – iPhone 6 Plus
G5QT – iPhone 6 Plus
G5R2 – iPhone 6 Plus
G5R0 – iPhone 6 Plus
G5R1 – iPhone 6 Plus

AppleIntelFramebufferAzul.sh v3.0 Beta

The preview of AppleIntelFramebufferAzul.sh v3.0 (updated earlier today) showed off the features that I was working on, and later today (after work) I will share my latest work (DONE).

Please note that this commit will not be the official v3.0 release, but a Beta version for people who want to help me get v3.0 released (earlier). It will however include this sub menu:

PortMenu
What I did was that I renamed Change the connector type to Change port layout/configuration and added a new sub-menu, which will only show the port specific data. Well. That and the new menu of course.

Editable Data

One other big improvement is that the frame buffer data is saved in editable data files (example: Azul-0x0d220003.dat) instead of one long string, so that you can open them in nano for a quick free form edit. One major drawback is that the files are now incompatible with older versions, and thus you must remove/move the old data files/to a new directory!

Remarks

1.) The cursor byte feature isn’t working for AppleIntelFramebufferCapri.kext
2.) Capri support is untested and most likely broken (will be fixed a.s.a.p)

Feedback

I may have missed bugs/issues so I’d like to ask people here to provide feedback via Github issues. Use “v3.0B” in the title to prevent confusion with future updates. Thanks!

Experimental bin-patch for HD4600 (mobile GT2)

Apple won’t update AppleIntelHD5000Graphics.kext anymore (GM state I believe) so it is time for us to figure out what is going on with the Mobile GT2 SKU’s that somehow don’t have QE/CI enabled so let’s give it a first go…

Step-1

First you go to the directory by entering:

cd /System/Library/Extensions/AppleIntelHD5000Graphics.kext/Contents/MacOS

Then you add the missing device-id (0x04168086) to the plist with:

sudo nano Info.plist

This is what it should look like:

<key>IOPCIPrimaryMatch</key>
<string>0x04168086 0x0d268086 0x0a268086 0x0a2e8086 0x0d228086 0x04128086 0x0a168086</string>

Note: Clover users can inject the missing device-id from their config file.

Step-2

Patch the AppleIntelHD5000Graphics binary with one of the following terminal commands:

Then you run this terminal command:

sudo /usr/bin/perl -pi -e 's|\x3d\x86\x80\x12\x04\x74\x10\xeb\x5d|\x3d\x86\x80\x16\x04\x74\x10\xeb\x5d|g' AppleIntelHD5000Graphics

Note: This can be changed to a shorter variant when it works, and Clover users can use find and replace from their config file.

If the first one didn’t work (it should mind you) then try this one:

sudo /usr/bin/perl -pi -e 's|\x3d\x86\x80\x12\x04\x74\x10\xeb\x5d|\x3d\x86\x80\x12\x04\x74\x10\xeb\x4d|g' AppleIntelHD5000Graphics

The first bin-patch will change the desktop device-id (0x04128086) to that of your mobile device-id (0x04168086). The second bin-patch will change a jump address, to that of the Apple/Intel supported GT3 one.

Make sure to have a backup of the vanilla binary handy (make a backup) and do not run both commands without restoring the vanilla binary. And in case you need to patch the frame buffer data, please try version 2.9 of AppleIntelFramebufferAzul.sh The changes to the binary should get detected and trigger a rebuild of the kernel cache, but in case that fails for you, you enter:
sudo touch /System/Library/Extensions

Not working?

This is a first experimental bin-patch so yeah it may not work, but make sure to check the bottom of Intel HD4600 with full resolution. There’s a tip that may help you ;)

Update

The patch works (see comments) so let’s take it one step further. Like I said earlier, you can use a shorter variant because all you need to change is this:

-3d86801204 cmpl $0x4128086, %eax
+3d86801204 cmpl $0x4168086, %eax

Clover users can add some lines to their config to patch AppleIntelFramebufferAzul so that they don’t have to worry about it anymore. They could use this data:

Find pattern—:PYaAEgQ=
Replace patter-:PYaAFgQ=

But since I don’t use Clover… someone with Clover will have to verify and confirm this to be actually working first.

AppleIntelFramebufferAzul.sh v2.9 released

The preview of AppleIntelFramebufferAzul.sh v3.0 showed off the features that I was working on, and today I like to share my work. Yes. The commit of this major update is done so you can start testing it and get used to all changes, and hopefully give lots of feedback.

Please note that this is not the v3.0 release. This is only a test version for people who want to help me get v3.0 released (earlier).

Remarks

1.) The cursor byte feature isn’t working for AppleIntelFramebufferCapri.kext
2.) The port values cannot be changed.
3.) Changing the number of frame buffers is not working like I have in mind.
4.) Setting USE_NM=0 in Capri script is broken.

Note: There are probably other things that I missed, but this update and your feedback should help me iron out the kinks so Thank you for testing the updates!

Update

I have fixed a couple of bugs and other annoying issues. Please download my latest work and check if the things that didn’t work for you, are solved in this version or now.

Preview of AppleIntelFramebufferAzul.sh v3.0

AppleIntelFramebufferAzul.sh v2.5 is a nice script, but it is not enough for me. I want something that is a lot easier to use. Without having to use nano – or whatever you are using – to edit the frame buffer data in the script. That is not working for me, so here is a preview of the stuff that I have been working on, and by the time v3.0 is ready… then you will have this to work with:

AppleFramebufferAzul_v22

What would you like to do next?

[ 1 ] Change the platform-id
[ 2 ] Change the amount of BIOS-allocated memory
[ 3 ] Change the amount of frame buffer memory
[ 4 ] Change the amount of cursor bytes
[ 5 ] Change the amount of VRAM
[ 6 ] Change the backlight frequency
[ 7 ] Change backlight max
[ 8 ] Change port layout/configuration
[ 9 ] Launch nano with frame buffer data
[ G ] Generate Base64 data
[ P ] Patch AppleIntelFramebufferAzul.kext
[ U ] Undo frame buffer changes

Please choose the action to perform (Exit/1-9/G/P/U) ?

[ 1 ] – The supported platformIDs are:
——————————

[ 1] : 0x0c060000 – Haswell SDV Mobile GT1
[ 2] : 0x0c160000 – Haswell SDV Mobile GT2
[ 3] : 0x0c260000 – Haswell SDV Mobile GT3
[ 4] : 0x04060000 – Haswell Mobile GT1
[ 5] : 0x04160000 – Haswell Mobile GT2
[ 6] : 0x04260000 – Haswell Mobile GT3
[ 7] : 0x0d260000 – Haswell CRW Mobile GT3
[ 8] : 0x0a160000 – Haswell ULT Mobile GT2
[ 9] : 0x0a260000 – Haswell ULT Mobile GT3
[10] : 0x0a260005 – Haswell ULT Mobile GT3
[11] : 0x0a260006 – Haswell ULT Mobile GT3
[12] : 0x0a2e0008 – Haswell ULT E GT3
[13] : 0x0a16000c – Haswell ULT Mobile GT2
[14] : 0x0d260007 – Haswell CRW Mobile GT3
[15] : 0x0d220003 – Haswell CRW GT3
[16] : 0x0a2e000a – Haswell ULT E GT3
[17] : 0x0a26000a – Haswell ULT Mobile GT3
[18] : 0x0a2e000d – Haswell ULT E GT3
[19] : 0x0a26000d – Haswell ULT Mobile GT3
[20] : 0x04120004 – Haswell GT2
[21] : 0x0412000b – Haswell GT2
[22] : 0x0d260009 – Haswell CRW Mobile GT3

Please choose a target platform-id (Exit/1-22) ?

[ 2 ] – Change BIOS-allocated memory to:

[ ] 32 MB (current value)
[ 2 ] 64 MB
[ 3 ] 96 MB
[ 4 ] 128 MB
[ 5 ] 160 MB
[ 6 ] 192 MB
[ 7 ] 224 MB
[ 8 ] 256 MB
[ 9 ] 288 MB
[ 10 ] 320 MB
[ 11 ] 352 MB
[ 12 ] 384 MB
[ 13 ] 416 MB
[ 14 ] 448 MB
[ 15 ] 480 MB
[ 16 ] 512 MB

Please choose the amount of memory (Cancel/1-16) ?

[ 3 ] – Change framebuffer memory to:

[ ] 16 MB (current)
[ 2 ] 19 MB
[ 3 ] 24 MB
[ 4 ] 34 MB

Please choose the amount of memory you want (Cancel/1-4) ?

[ 4 ] – Change cursor bytes to:

[ ] 0 MB (current)
[ 2 ] 5 MB
[ 3 ] 6 MB
[ 4 ] 9 MB
[ 5 ] 15 MB
[ 6 ] 21 MB
[ 7 ] 34 MB

Please choose the amount of cursor bytes you want (Cancel/1-7) ?

[ 5 ] – Change Video Random Access Memory to:

[ 1 ] 256 MB
[ 2 ] 384 MB
[ 3 ] 768 MB
[ 4 ] 512 MB
[ ] 1024 MB (current)
[ 6 ] 1536 MB

Please choose the amount of memory you want (Cancel/1-6) ?

[ 8 ] – Change port layout/configuration

[ 1 ] Change the frame buffer index
[ 2 ] Change the port nibble
[ 3 ] Change the pipe attribute
[ 4 ] Change the connector type
[ 5 ] Change the connector attribute

Please choose the action to perform (Back/1-5) ?

[ 8/1 ] – Change connector type for port 5 to:

[ 1 ] VGA connector
[ 2 ] LVDS connector
[ 3 ] eDP connector
[ 4 ] DVI connector
[ ] DisplayPort connector (current)
[ 6 ] HDMI connector

Please choose a connector type (Cancel/1-6) ?

[ G ] – Base64 representation of framebuffer Azul-0x0d220003.dat:
——————————————————————————–
MDMwMDIyMGQwMDAzMDMwMzAwMDAwMDAyMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDQwOTkxNDAwMDA5OTE0
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA1MTIwMDAwMDQwMDAwODcwMDAwMDAwMjA0MTQwMDAwMDQwMDAw
ODcwMDAwMDAwMzA2MTAwMDAwMDQwMDAwMTEwMDAwMDBmZjAwMDEwMDAxMDAwMDAwNDAwMDAwMDAwMjAw
MDAwMDAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA=

Now it is time to write the sub-menu code to let us change the backlight frequency (6) and the backlight max (7), but pretty much everything is working. What I want with this preview is to ask for your help. Did I miss something? Is something wrong? If yes… now is the time to let me know.

Thanks for your help ;)

AppleIntelFramebufferAzul.sh v2.5 released

A new update of AppleIntelFramebufferAzul.sh is available for download. Have a look at the commits to see what I changed. Here is one big improvement. Enter:

./AppleIntelFramebufferAzul.sh

Gone with the error. Next up. Colorised output with contextual information. Something I previewed here.
AppleFramebufferAzul_v22
Ok. This is actually a screenshot made with v2.2 and thus the output is slightly different. Thing is. Most people will find this improvement handy. Hey. Even I do.

What’s next

If you think that this is it… think again! I am going to change things even further. And big time. I tell you this. When I am done with the update to v3.0 then patching your frame buffer(s) will be much easier. Key point: Forget editors :-)

Bugs

You know the drill. All possible bugs (so called ‘issues’) should be filed at:

https://github.com/Piker-Alpha/AppleIntelFramebufferAzul.sh/issues

Please do not use my blog for this.

Thank you!

AppleIntelFramebufferAzul.sh v2.1 released

You may have missed two earlier updates of AppleIntelFramebufferAzul.sh already, but today adds a third one. It’s available for download right now so get it while it’s still hot. Take a look at the latest commits to see what I changed. Here is one big improvement. Enter:

./AppleIntelFramebufferAzul.sh 0

It starts by showing this error:

Error: AAPL,ig-platform-id: 0 NOT found!

But then it shows this list:

The supported platformIDs are:
------------------------------

[ 1] : 0x0c060000 - Haswell SDV Mobile GT1
[ 2] : 0x0c160000 - Haswell SDV Mobile GT2
[ 3] : 0x0c260000 - Haswell SDV Mobile GT3
[ 4] : 0x04060000 - Haswell Mobile GT1
[ 5] : 0x04160000 - Haswell Mobile GT2
[ 6] : 0x04260000 - Haswell Mobile GT3
[ 7] : 0x0d260000 - Haswell CRW Mobile GT3
[ 8] : 0x0a160000 - Haswell ULT Mobile GT2
[ 9] : 0x0a260000 - Haswell ULT Mobile GT3
[10] : 0x0a260005 - Haswell ULT Mobile GT3
[11] : 0x0a260006 - Haswell ULT Mobile GT3
[12] : 0x0a2e0008 - Haswell ULT E GT3
[13] : 0x0a16000c - Haswell ULT Mobile GT2
[14] : 0x0d260007 - Haswell CRW Mobile GT3
[15] : 0x0d220003 - Haswell CRW GT3
[16] : 0x0a2e000a - Haswell ULT E GT3
[17] : 0x0a26000a - Haswell ULT Mobile GT3
[18] : 0x0a2e000d - Haswell ULT E GT3
[19] : 0x0a26000d - Haswell ULT Mobile GT3
[20] : 0x04120004 - Haswell GT2
[21] : 0x0412000b - Haswell GT2
[22] : 0x0d260009 - Haswell CRW Mobile GT3

Please choose a target platformID (0/1-22) ?

Same thing for AppleIntelFramebufferCapri.sh:

The supported platformIDs are:
------------------------------

[ 1] : 0x01660000 - Ivy Bridge Mobile GT2
[ 2] : 0x01620006 - Ivy Bridge GT2
[ 3] : 0x01620007 - Ivy Bridge GT2
[ 4] : 0x01620005 - Ivy Bridge GT2
[ 5] : 0x01660001 - Ivy Bridge Mobile GT2
[ 6] : 0x01660002 - Ivy Bridge Mobile GT2
[ 7] : 0x01660008 - Ivy Bridge Mobile GT2
[ 8] : 0x01660009 - Ivy Bridge Mobile GT2
[ 9] : 0x01660003 - Ivy Bridge Mobile GT2
[10] : 0x01660004 - Ivy Bridge Mobile GT2
[11] : 0x0166000a - Ivy Bridge Mobile GT2
[12] : 0x0166000b - Ivy Bridge Mobile GT2

Please choose a target platformID (0/1-12) ?

All you need to do is to rename AppleIntelFramebufferAzul.sh to AppleIntelFramebufferCapri.sh but the patch and unto options can only work after you’ve replaced the data in function _initPatchedPlatformInfo and _initFactoryPlatformInfo. Duh!

This is just a start, because boy you want the next update. Badly. Yeah. Another massive improvement ;)

Edit: Here is a first glimpse of something that I want to introduce in a next update; colorised output with contextual information about the data.

AppleFramebufferAzul_v22

And that is just one of the many improvements that I have in mind for you.

Bugs

You know the drill. All possible bugs (so called ‘issues’) should be filed at:

https://github.com/Piker-Alpha/AppleIntelFramebufferAzul.sh/issues

Please do not use my blog for this.

Thank you!