Jump to content
About Just Joined group Read more... ×

syscl

Coders
  • Content Count

    290
  • Joined

  • Last visited

  • Days Won

    9

Reputation Activity

  1. Like
    syscl got a reaction from Badruzeus in [GUIDE] HWP(Intel Speed Shift) enable with full power management   
    For those who experience incomplete power management with the HWP, here's the solution 
    [Updated: 2017-02-11] @dpassmore suggested me to use tiny SSDT method to inject Plugin-Type instead of using ssdtPRGen. Here's the refined SSDT-pr I made(use _DSM) SSDT-pr.aml.zip
    HWPEnable = Yes Piker's MSR 0xE2 lock patch to fix instant reboot(in KernelToPatch) Comment: MSR 0xE2 _xcpm_idle instant reboot (c) Pike R. Alpha MatchOS: 10.12 Find: 20b9e200 00000f30 Replace: 20b9e200 00009090 Through Clover config.plist
    <key>KernelToPatch</key> <array> <dict> <key>Comment</key> <string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string> <key>Disabled</key> <false/> <key>Find</key> <data> ILniAAAADzA= </data> <key>MatchOS</key> <string>10.12</string> <key>Replace</key> <data> ILniAAAAkJA= </data> </dict> </array> choose HWP support model, e.g. MacBook9,1, MacBookPro13,1, MacBookPro13,2, MacBookPro13,3 Here's the proof from my XPS 13 9350(Iris 540 model)

     
    Note: for better battery life and cpu temperature, you also need to tune with X86PlatformPlugin.kext/Contents/Resources, I injected more power management properties for  i7-6560:
    Base frequency: 2.20Ghz Max turbo frequency: 3.20Ghz I even lower 6550's threshold down to 0.50Ghz which can never achieve while using MacBookPro13,2 with vanilla X86PlatformPlugin.kext power_reduced_playback thermally_optimized_xcode optimized_photobooth thermally_optimized_xcode optimized_screensavers optimized_slideshows optimized_visualizers thermally_optimized_maps the rest with optimized_* and thermall_*, powe_reduced* are extracted from MacBook9,1's config file: Mac-9AE82516C7C6B903.plist, here's where to change:

     
    The temperate and frequency are pretty well now!
    I will post more detail about how to tune the frequency vector later. But, since I have 2 dues and 2 mid terms soon, my post will be slow.
     
    credit Pike R. Alpha(_xcpm_idle patch stop the kernel panic)
    credit David Passmore(SMBios solution such that all Dell Skylake laptop can enjoy this flash function)
    ​credit syscl (full HWP Enable)
     
    Good luck,
    syscl
  2. Thanks
    syscl got a reaction from BuXb in [Guide] Fix issue of "Disk not ejected properly"   
    Overview
    On OS X/Mac OS X, some people may suffer from the issue that the external disk was not ejected properly after sleep. This problem dates back to the period of the coming of Mavericks, even on a real Mac!

     
     
    Overview of the tools/solutions





    AFAIK, there's two solutions to fix this problem till now: 
    Install Jettison from Mac App Store. Use sleepwatcher to unmount the external devices before system go to sleep.
    But for me, install Jettison is not free of charge, and this application will place icon on the right corner of the statue bar once get installed, which is not a good solution from my point of view. 

    The latter one is open source and free of charge, which means I can know clearly what this application/daemon has done and add as many functions I want to it. With the help of sleepwatcher, there's various script to unmount/mount disk upon sleep, but none of it is so easy to read and some require sleep time delay settings, that's really strange! That's the reason why I started to create my "own" version of script to fix this issue. I optimized the whole progress as well as the installation progress. No more wake/sleep delay time settings! No more complicated command line, no more wake script, just one sleep script for unmount the external devices, once you resume from sleep, all the external devices will mount by system spontaneously. After following this guide step-by-step, no more "Disk not ejected properly" error will occur upon sleep. 
     
    Feel free to change whatever you want if you do not satisfy with my script: https://github.com/syscl/Fix-usb-sleep
     
    How to use?
    Download the latest fixUSB.sh by entering the following command in a terminal window: git clone https://github.com/syscl/Fix-usb-sleep Note: If it was the first you execute command "git", please install it by the tips from OS X online(Click "Install"), and then run the above command line again.
     
     
    This will download the fixUSB.sh to your current folder (./) and the next step is to change the permissions of the file(add +x) so that it can be run: chmod +x ~/Fix-usb-sleep/fixUSB.sh Run the fixUSB.sh in a terminal window by: cd ./Fix-usb-sleep ./fixusb.sh If all this procedures have done correctly, you will see the following message in the terminal window

    Hope you all enjoy this script and all feedbacks are welcome! Post issue on https://github.com/syscl/Fix-usb-sleep
     
    Credit:
    Bernhard Baehr (bernhard.baehr@gmx.de): without his great sleepwatcher, this project/script will not be created.
     
  3. Thanks
    syscl got a reaction from BuXb in [Guide] Fix issue of "Disk not ejected properly"   
    Overview
    On OS X/Mac OS X, some people may suffer from the issue that the external disk was not ejected properly after sleep. This problem dates back to the period of the coming of Mavericks, even on a real Mac!

     
     
    Overview of the tools/solutions





    AFAIK, there's two solutions to fix this problem till now: 
    Install Jettison from Mac App Store. Use sleepwatcher to unmount the external devices before system go to sleep.
    But for me, install Jettison is not free of charge, and this application will place icon on the right corner of the statue bar once get installed, which is not a good solution from my point of view. 

    The latter one is open source and free of charge, which means I can know clearly what this application/daemon has done and add as many functions I want to it. With the help of sleepwatcher, there's various script to unmount/mount disk upon sleep, but none of it is so easy to read and some require sleep time delay settings, that's really strange! That's the reason why I started to create my "own" version of script to fix this issue. I optimized the whole progress as well as the installation progress. No more wake/sleep delay time settings! No more complicated command line, no more wake script, just one sleep script for unmount the external devices, once you resume from sleep, all the external devices will mount by system spontaneously. After following this guide step-by-step, no more "Disk not ejected properly" error will occur upon sleep. 
     
    Feel free to change whatever you want if you do not satisfy with my script: https://github.com/syscl/Fix-usb-sleep
     
    How to use?
    Download the latest fixUSB.sh by entering the following command in a terminal window: git clone https://github.com/syscl/Fix-usb-sleep Note: If it was the first you execute command "git", please install it by the tips from OS X online(Click "Install"), and then run the above command line again.
     
     
    This will download the fixUSB.sh to your current folder (./) and the next step is to change the permissions of the file(add +x) so that it can be run: chmod +x ~/Fix-usb-sleep/fixUSB.sh Run the fixUSB.sh in a terminal window by: cd ./Fix-usb-sleep ./fixusb.sh If all this procedures have done correctly, you will see the following message in the terminal window

    Hope you all enjoy this script and all feedbacks are welcome! Post issue on https://github.com/syscl/Fix-usb-sleep
     
    Credit:
    Bernhard Baehr (bernhard.baehr@gmx.de): without his great sleepwatcher, this project/script will not be created.
     
  4. Like
    syscl got a reaction from nmano in FakeAppleWirelessHID: enable extended feature for non-Apple wireless mouse/keyboard   
    Hello all, after buying Logitech M557 and K380 for macOS, I soon realized some Apple's extended feature does not work any more. @Andy Vandijck has posted great work on wired devices. After doing some research and comparing @Andy Vandijck's work, I've successfully enabled extended feature for non-Apple wireless devices(Keyboard/Mouse).
     
    Here's the step of how to use FakeAppleWirelessMouse:
    Find out your wireless' device product ID(pid) and vendor ID(vid). For example, Logitech M557's pid = 45072(0x0b010), vid = 1133(0x046d). Open FakeAppleWirelessMouse.kext/Contents/Info.plist and replace all(3x) pid and vid with your own. Place FakeAppleWirelessMouse.kext to bootloader's inject folder or /Library/Extensions or /System/Library/Extensions(choose one of it), then reboot. Notice: if you install kext in place other than boot loader's inject folder, place don't forget to rebuild your kernel cache before reboot by
    sudo kextcache -i / Here's some proof of my working M557 tested on MacBookPro141:

     
    For those want AppleWirelessKeyboard, same procedure as above.

     
    Here's all the require kexts:
    FakeAppleWirelessMouse.kext.zip
    FakeAppleWirelessKeyboard.kext.zip
     
    credit: @Andy Vandijck for his previous work
    credit: syscl who ported it to Bluetooth/Wireless Device 
     
     
    Good luck everyone:)
    syscl
  5. Thanks
    syscl got a reaction from BuXb in [Guide] Fix issue of "Disk not ejected properly"   
    Overview
    On OS X/Mac OS X, some people may suffer from the issue that the external disk was not ejected properly after sleep. This problem dates back to the period of the coming of Mavericks, even on a real Mac!

     
     
    Overview of the tools/solutions





    AFAIK, there's two solutions to fix this problem till now: 
    Install Jettison from Mac App Store. Use sleepwatcher to unmount the external devices before system go to sleep.
    But for me, install Jettison is not free of charge, and this application will place icon on the right corner of the statue bar once get installed, which is not a good solution from my point of view. 

    The latter one is open source and free of charge, which means I can know clearly what this application/daemon has done and add as many functions I want to it. With the help of sleepwatcher, there's various script to unmount/mount disk upon sleep, but none of it is so easy to read and some require sleep time delay settings, that's really strange! That's the reason why I started to create my "own" version of script to fix this issue. I optimized the whole progress as well as the installation progress. No more wake/sleep delay time settings! No more complicated command line, no more wake script, just one sleep script for unmount the external devices, once you resume from sleep, all the external devices will mount by system spontaneously. After following this guide step-by-step, no more "Disk not ejected properly" error will occur upon sleep. 
     
    Feel free to change whatever you want if you do not satisfy with my script: https://github.com/syscl/Fix-usb-sleep
     
    How to use?
    Download the latest fixUSB.sh by entering the following command in a terminal window: git clone https://github.com/syscl/Fix-usb-sleep Note: If it was the first you execute command "git", please install it by the tips from OS X online(Click "Install"), and then run the above command line again.
     
     
    This will download the fixUSB.sh to your current folder (./) and the next step is to change the permissions of the file(add +x) so that it can be run: chmod +x ~/Fix-usb-sleep/fixUSB.sh Run the fixUSB.sh in a terminal window by: cd ./Fix-usb-sleep ./fixusb.sh If all this procedures have done correctly, you will see the following message in the terminal window

    Hope you all enjoy this script and all feedbacks are welcome! Post issue on https://github.com/syscl/Fix-usb-sleep
     
    Credit:
    Bernhard Baehr (bernhard.baehr@gmx.de): without his great sleepwatcher, this project/script will not be created.
     
  6. Like
    syscl got a reaction from cjfly in Get system log from 10.12+ much much easier(by just a simply click)   
    Well, as of 10.12, Apple removed /var/log/system.log, which made developers' life much more inconvenient. Especially for further debugging. Though we can use log command to print out all the log from system, but hey, why should we use such a ridiculous way every time to see log?? That's why I started this project maclog for Sierra to make our life much easier. 
     
    How to use?
    Download executable program from my GitHub: https://github.com/syscl/maclog Double left click to execute maclog(P.S. for first time use: right click -> open) That's it. No more command you need to type in.
     
    If you enjoy this project don't hesitate to star it
    If you have good idea please don't hesitate to let me know
     
    Wish you all enjoy
     
    Best wishes,
    syscl
     
  7. Like
    syscl got a reaction from cjfly in EnableLidWake — fix lid wake issues for Intel Graphics   
    EnableLidWake.kext provides fix for Intel integrate graphics lid wake issue(enable internal display after sleep). This a Lilu plugin that provides users an alternative way to enable their lid wake after resuming from sleep. 
     
    Support platform: Haswell, Skylake and later on Kabylake...
     
    Usage: Install Lilu.kext + EnableLidWake.kext(and yes, you can inject it through bootloader)
     
    Here's the source code: https://github.com/syscl/EnableLidWake
     
    Here's the pre-built version of EnableLidWake.kext
    EnableLidWake.kext.zip
     
    Credit: @vit9696 and his Lilu.kext
    Credit syscl for the lid wake patches
     
    Good luck!
    syscl
  8. Like
    syscl got a reaction from MaLd0n in Clover Problems and Solutions   
    For those who experience Dell SMBIOS truncate in SMBIOS Table Type 1(Broadwell, Skylake, ...), here's the solution:
     
    Remap SmBios Table Type 1 standard GUID from EB9D2D31-2D88-11D3-9A16-0090273FC14D to EB9D2D35-2D88-11D3-9A16-0090273FC14D Kexts patch to make AppleSMBIOS and AppleACPIPlatform to read table in new location Notice:
    Since SmBios Table Type 2 hasn't been affected, thus boot.efi hasn't been affected(lucky part) Since SmBios Table Type 1 GUID is the same on all computers even on Apple, thus, Apple has to follow the same definition from UEFI, that's why we can simply change GUID without any worries  
    So how about the solution?
     
    We can manually patch AppleSMBIOS and AppleACPIPlatform then use a hacked CLOVERX64.efi to fix issues on Dell's laptop. But this solution is not elegant. Because:
    The patched CLOVERX64.efi can not easily sync with the latest code This method may be applied on other platforms, other computers as well, thus not be applicable in practice  Need to add kext patch manually  
    Thus my goal is to implement this fix in Clover as an option(like many other patches: AsusAICPUPM, AppleRTC...). And, yes, minor change in Clover source code to achieve consistency.
     
    Here's the new option I made for Clover(Dell SMBIOS Patch)

     
    Here's the new key(boolean) value in Clover config.plist
    <key>KernelAndKextPatches</key> <dict> <key>DellSMBIOSPatch</key> <false/> </dict> Here's the source code I've changed
    Clover.zip
     
    Here's the compiled CLOVERX64.efi(based on latest r3998 @Sherlock's fix version from sourceforge)
    CLOVERX64.efi.zip
     
    Here's the prove after applying this patch on XPS 13 9350(Iris 540 model)

     
    Notice: This method can be applied in any computers without problems(in theory). But I recommend you use this method only when you encounter SMBIOS Table Type 1 truncate issue.
     
    Credit: David Passmore who provided the clue for the fix. Thank's for your good idea!
    Credit: @Sherlock who help me refine RC.Script bugs such that I have time to implement David Passmore's workaround into Clover
    Credit: my friends(like Hongyi, @Mirone) who give me courage not to give up 
    Credit: syscl who implement this method into Clover
    Credit: Clover, a great project
     
    Thanks everyone, have a great day
    syscl
  9. Like
    syscl got a reaction from gujiangjiang in EFICheckDisabler   
    I just don't know why a lot of people think LPCB device injection is necessary on Skylake+ platform. Actually, on Skylake+ platform you only need PPMC and PMRC combine together to make LPCB work(like in a real Mac, confirmed from MacBookPro's ioreg). AppleLPC will not load in this case. More details can be checked in my git: https://github.com/syscl/XPS9350-macOS/commit/ed474d5bc68efba71ed827e5eef5c5db910d24c2(I discovered this since Dec 1 2016).
     
    syscl
  10. Like
    syscl got a reaction from gujiangjiang in EFICheckDisabler   
    I just don't know why a lot of people think LPCB device injection is necessary on Skylake+ platform. Actually, on Skylake+ platform you only need PPMC and PMRC combine together to make LPCB work(like in a real Mac, confirmed from MacBookPro's ioreg). AppleLPC will not load in this case. More details can be checked in my git: https://github.com/syscl/XPS9350-macOS/commit/ed474d5bc68efba71ed827e5eef5c5db910d24c2(I discovered this since Dec 1 2016).
     
    syscl
  11. Like
    syscl got a reaction from gujiangjiang in EFICheckDisabler   
    I just don't know why a lot of people think LPCB device injection is necessary on Skylake+ platform. Actually, on Skylake+ platform you only need PPMC and PMRC combine together to make LPCB work(like in a real Mac, confirmed from MacBookPro's ioreg). AppleLPC will not load in this case. More details can be checked in my git: https://github.com/syscl/XPS9350-macOS/commit/ed474d5bc68efba71ed827e5eef5c5db910d24c2(I discovered this since Dec 1 2016).
     
    syscl
  12. Like
    syscl reacted to RehabMan in Clover Problems and Solutions   
    Note: I was going to do each of these as a separate post, but the stupid site wouldn't do that. So... all in one!   --   restore "Without caches" option   This is still a relatively commonly used option and therefore should be easy to do (eg. without adding -f to Boot/Arguments from Clover Options).   Affected files: loader.c Commit: https://github.com/RehabMan/Clover/commit/a14caeb0dd97ce76d560cf60283b3164c95c46b0  
    ---   SSDT generation changes:   ACPI/SSDT/Generate/APSN ACPI/SSDT/Generate/APLF ACPI/SSDT/Generate/PluginType   Allow separate control over these object injections in generated PM SSDT. This is useful when using SSDT.aml generated from ssdtPRgen.sh, but dropping the OEM CPU related SSDTs.  In that case you want to use Generate=true (to generate CStates/PStates, aka _PSS, _CST, etc), but you don't want to generate APSN, APLF as these objects are already in ssdtPRgen.sh generated SSDT.aml.   Generate/PluginType is useful for injecting only plugin-type=1 on CPU0.  Used by itself, it can be used to enable native CPU PM on Haswell and later.  This option was already "sort of" in there but required HWP to be used as well.  This change makes it applicable even if not using HWP.    Affected files: Settings.c, Platform.h, StateGenerator.c. AcpiPatcher.c   Related commits (this one took me a while to get backward compatibility right): https://github.com/RehabMan/Clover/commit/d719712f7d567cdb0691f8bdfc1b77cd7a738dfa https://github.com/RehabMan/Clover/commit/4e438aace9e0830d3d9c6c567eeb3a73d61f2f2c https://github.com/RehabMan/Clover/commit/3298737f794507243b4779ac4b8a226b4ccdbe37 https://github.com/RehabMan/Clover/commit/bda8b7bffff76eacc85f6675ef2d1185adc5b4e3   --   Minor cleanup: "remove unused identifier kernelXCPMAllowed"   https://github.com/RehabMan/Clover/commit/8161ea7367ba3b7b3664041bd49de0fc7928a20f   --   Fixing SSDT extracted names: "strip trailing spaces from SSDT OemTableId for origin dump"   Recent change was made to place OemTableID as a suffix for extracted SSDTs (eg. "SSDT-7-SaSsdt.aml"), but often you end up with trailing spaces (eg. "SSDT-7-SaSsdt  .aml").   Afffected files: AcpiPatcher.c   https://github.com/RehabMan/Clover/commit/b9b032e7a73a7b4b5305f601e490b349714c6578   --   Adding OemTableId to extracted SSDTs is not always convenient. Added config.plist/ACPI/SSDT/NoOemTableId option to disable it.   Affected files: AcpiPatcher.c, Platform.h, Settings.c   https://github.com/RehabMan/Clover/commit/e81619ee54f48916b20b2b7d62c50df59720bf9b     --   Changed numbering scheme for dynamic SSDTs (this is for AutoMerge feature below). By numbering the dynamic ones differently, the number assigned to static SSDTs can be used to find the placement in the XSDT for automatic merge/replacement.   New numbering scheme for dynamic SSDTs is: - For dynamic SSDT pointed by DSDT.aml: SSDT-xDSDT_#-id.aml (# is child reference count) - For dynamic SSDT pointed by an SSDT: SSDT-x#_#-id.aml (first # is static SSDT reference#, second # is child reference #)   Static SSDTs always end up with a contiguous numbering scheme, SSDT-0*.aml through and including SSDT-n*.aml, where n is the number of static SSDTs minus 1.   Affected files: AcpiPatcher.c    https://github.com/RehabMan/Clover/commit/72a1ae8d392c9c9145da6713e12fa470c4530706   --   AutoMerge feature for merging/replacement of SSDTs (or other AMLs) by content in ACPI/patched   By setting config.plist/ACPI/AutoMerge=true (default is false to retain old behavior), content in ACPI/patched will attempt to be matched against native bits referred to by the XSDT.  Much like how DSDT.aml placed in ACPI/patched *replaces* native DSDT, you can use this feature to replace SSDTs (or other tables) automatically without using DropTables, or DropOem. More importantly, the relative order of the tables is retained.  It means you can replace only a single table without resorting to DropOem=true and SortedOrder (which implies placing all SSDTs in ACPI/patched).    The matching is based on file name and OemTableID/signature.   For SSDTs, the number in the file name is used to find the index in XSDT.  So, a file named SSDT-5.aml in ACPI/patched will replace the 6th SSDT in XSDT (because SSDTs extracted start at SSDT-0.aml).  Additional checking is done with regard to the OEM table ID, to avoid obvious mistakes (eg. placing an SSDT-x.aml that is not a patched SSDT, or mixing up the naming/numbering of the SSDTs in ACPI/patched).   With the change to dynamic SSDT extraction file names (above) and this change, it means you can take any SSDT that was extracted, patch it, and place in ACPI/patched, and without making changes to DropOem or DropTables (or using SortedOrder) it will replace the original SSDT with the patched version, retaining SSDT order.  In other words, Clover does the right thing with AutoMerge=true, contrary to what it does by default.   This setting also affects how config.plist/ACPI/DSDT/Patches are treated.  Normally, such patches do not apply to SSDTs.  But with AutoMerge=true, such patches are now applied to patched OEM SSDTs in ACPI/patched.  Still, add-on SSDTs (eg. those that didn't match existing tables in XSDT), are not affected by ACPI/DSDT/Patches.  It means that no major surprises happen when you place a patched SSDTs in ACPI/patched.   The default of AutoMerge is false, so it is a feature you must explicitly select.   Files affected: AcpiPatcher.c, Platform.h, Settings.c, menu.c   https://github.com/RehabMan/Clover/commit/def196926469cb65fe5e8050368d5228d213d720   --   Add config.plist/ACPI/DSDT/Fixes/FixMutex optioin   The ACPI runtime in macOS/OS X does not work correctly with Mutex objects with a non-zero SyncLevel, even when used in a valid scenario.   Such Mutex definions must be changed to use SyncLevel 0.   The FixMutex feature is an easy way to fix all of them in DSDT.   Affected files: FixBiosDsdt.c, Platform.h, Settings.c, menu.c   https://github.com/RehabMan/Clover/commit/13e1f717fee5a79576b0eabc39fcafc7d20959fa   Note: That commit calls it "FixMutex_40000000", but a later commit renames the option to "FixMutex".   --   There are cases in AcpiPatcher.c where a file is loaded using AllocatePool, but freed with FreePages. Should be FreePool.   Also, no need to zero a buffer before loading the file into it (as all bytes in the buffer will be set by file content).   Affected files: AcpiPatcher.c, image.c   https://github.com/RehabMan/Clover/commit/8fde01377226a9cc91abda77ac3c88dbdbd5b0f3   --   Friendly names for config.plist/ACPI/DSDT/Fixes   There is no need to burden the user with the bitmask values for DSDT/Fixes. Old names are provided for backward compatibility. Also, made the code table driven.   Also, changed (new) names to have consistent capitalization.   Affected files: Settings.c https://github.com/RehabMan/Clover/commit/d273f0d4439a65472c8319f762633312f236686e   My readme describes mappings from old name to new name: https://github.com/RehabMan/Clover/commit/a2f885c53515d089078bad2fc185be9c9f934cf1   --   Add with/without injected kexts.  "Cancel hibernate" conditional.   Affected files: loader.c   https://github.com/RehabMan/Clover/commit/6db1fb066964307c62f45c3624eebf77a82c7c70   --   Fixed menu navigation regarding space/enter/esc keys   Affected files: menu.c   https://github.com/RehabMan/Clover/commit/4d4e1e23c9c0eadfe194c234e1d3afa53d0e09e5   --   Remove hand padding/alignment in Platform.h   Easier to maintain.  Let the compiler work for us, not against us. Also removed unecessary ADDRESS_OF macro (taking the address of a member within instance is not complex)   Affected files: Platform.h, menu.c   https://github.com/RehabMan/Clover/commit/8f3ca6a1f1ddcad8cc0020c3b12b8d2782e1a858   --   Refactor platformdata.c to use a single array instead of separate arrays   Separate arrays leave open the possibility of mistakes...  Single array of struct allows all data for a given SMBIOS model to be seen in one place, and allows easier edits.   The new data was generated mostly programatically from original platformdata.c itself.   Affected files: Settings.c, platformdata.c   https://github.com/RehabMan/Clover/commit/20f01878df291db3f4c68efe3841f9e368950a54 https://github.com/RehabMan/Clover/commit/02c35e42a77abe08a5740f11491f6f3cff0fbce6   --   malloc/free/realloc implementation in lodepng.c was wrong. Correct implementation requires storage of the original allocation size for use in realloc.   Affected files: loadpng.c   https://github.com/RehabMan/Clover/commit/f2dce67a9d99c1b932ed019474ef4390d6e1a1d2   --   Original "embedded" images had hand-coded/hard-coded sizes.   Not necesary. The compiler provides sizeof() for this. Alignment is also possible with __attribute__((__aligned__(8)))  (no compiler guarantee that one data definition followed by another end up in that order anyway)   Affected files: egemb_font.c, scroll_images.c, icns.c, menu.c, libegint.h   Related commits: https://github.com/RehabMan/Clover/commit/9a1727acd567630a4822129b83f5f01839e21196   --   Add config.plist/ACPI/SSDT/NoDynamicExtract option   Dynamic SSDTs confuse users and are amost never needed.  Added an option to config.plist to disable extraction of them via Clover F4 (default is false).   Affected files: AcpiPatcher.c, Platform.h, Settings.c   https://github.com/RehabMan/Clover/commit/47ba91969290e6d452d0bbc995f29b826bec4d6f
  13. Like
    syscl reacted to Slice in Clover Problems and Solutions   
    @RehabMan
    Thanks for your work. I will accept all your changes during next week. Let users decide if it good and useful.
  14. Like
    syscl got a reaction from Sherlocks in Clover Problems and Solutions   
    Thank you, I have committed to r4269 already. In fact, as of my first version of this script I use diskutil for all mounting, unmount and identified ESP/EFI partition, so actually all this operations can use diskutil(more concise and tidy code). Since we now use LogoutHook so that we don't need to worry about diskutil is unavailable issue. 
     
    syscl
  15. Like
    syscl got a reaction from Sherlocks in Clover Problems and Solutions   
    Thank you, I have committed to r4269 already. In fact, as of my first version of this script I use diskutil for all mounting, unmount and identified ESP/EFI partition, so actually all this operations can use diskutil(more concise and tidy code). Since we now use LogoutHook so that we don't need to worry about diskutil is unavailable issue. 
     
    syscl
  16. Like
    syscl got a reaction from Sherlocks in Clover Problems and Solutions   
    Thank you, I have committed to r4269 already. In fact, as of my first version of this script I use diskutil for all mounting, unmount and identified ESP/EFI partition, so actually all this operations can use diskutil(more concise and tidy code). Since we now use LogoutHook so that we don't need to worry about diskutil is unavailable issue. 
     
    syscl
  17. Like
    syscl got a reaction from Sherlocks in Clover Problems and Solutions   
    Thank you, I have committed to r4269 already. In fact, as of my first version of this script I use diskutil for all mounting, unmount and identified ESP/EFI partition, so actually all this operations can use diskutil(more concise and tidy code). Since we now use LogoutHook so that we don't need to worry about diskutil is unavailable issue. 
     
    syscl
  18. Like
    syscl got a reaction from Sherlocks in Clover Problems and Solutions   
    Thank you, I have committed to r4269 already. In fact, as of my first version of this script I use diskutil for all mounting, unmount and identified ESP/EFI partition, so actually all this operations can use diskutil(more concise and tidy code). Since we now use LogoutHook so that we don't need to worry about diskutil is unavailable issue. 
     
    syscl
  19. Like
    syscl reacted to tluck in Clover Problems and Solutions   
    RE: nvram save script and SIP
     
    @syscl
    here is rewrite of the nvram_save_script (v1.16.6) using diskutil to find the EFI partition on disks vs gpt (which has restrictions when SIP is completely enabled).  The section to find EFI device is based on the RehabMan's parse method from above - but adapted for this script. The point was to check find a disk's EFI partition (not by name) and its associated device name (e.g disk0s1)
     
    the key section looks like this now:
    for ((i=0; i<${#gDisk[@]}; ++i))     do       local gESP=""       local plist=$( diskutil list -plist "/dev/${gDisk[i]}" 2> /dev/null )       for ((part=0; 1; part++));       do             content=$( /usr/libexec/PlistBuddy -c "Print :AllDisksAndPartitions:0:Partitions:$part:Content" /dev/stdin <<< $plist 2>&1 )             if [[ "$content" == *"Does Not Exist"* ]];             then                 break             fi             if [[ "$content" == "EFI" ]];             then                 gESP=$( /usr/libexec/PlistBuddy -c "Print :AllDisksAndPartitions:0:Partitions:$part:DeviceIdentifier" /dev/stdin <<< $plist 2>&1 )                 break             fi       done       gLogTimeStamp=$(date +%Y-%m-%d-%H:%M:%S)       if [[ $gESP != "" ]];       then             printf "${gLogTimeStamp}  ${gDisk[i]}: ESP --"                      local gMountPoint=$(_mountESP ${gESP}) ...       else             printf "${gLogTimeStamp}  ${gDisk[i]}: ------ Ignored -- No ESP on disk\n"       fi     done save_nvram_script.1.16.6.zip
  20. Like
    syscl got a reaction from nmano in FakeAppleWirelessHID: enable extended feature for non-Apple wireless mouse/keyboard   
    Hello all, after buying Logitech M557 and K380 for macOS, I soon realized some Apple's extended feature does not work any more. @Andy Vandijck has posted great work on wired devices. After doing some research and comparing @Andy Vandijck's work, I've successfully enabled extended feature for non-Apple wireless devices(Keyboard/Mouse).
     
    Here's the step of how to use FakeAppleWirelessMouse:
    Find out your wireless' device product ID(pid) and vendor ID(vid). For example, Logitech M557's pid = 45072(0x0b010), vid = 1133(0x046d). Open FakeAppleWirelessMouse.kext/Contents/Info.plist and replace all(3x) pid and vid with your own. Place FakeAppleWirelessMouse.kext to bootloader's inject folder or /Library/Extensions or /System/Library/Extensions(choose one of it), then reboot. Notice: if you install kext in place other than boot loader's inject folder, place don't forget to rebuild your kernel cache before reboot by
    sudo kextcache -i / Here's some proof of my working M557 tested on MacBookPro141:

     
    For those want AppleWirelessKeyboard, same procedure as above.

     
    Here's all the require kexts:
    FakeAppleWirelessMouse.kext.zip
    FakeAppleWirelessKeyboard.kext.zip
     
    credit: @Andy Vandijck for his previous work
    credit: syscl who ported it to Bluetooth/Wireless Device 
     
     
    Good luck everyone:)
    syscl
  21. Like
    syscl reacted to Slice in Clover General discussion   
    Tested 4256 in QEMU. 10.7.3 injection works.
  22. Like
    syscl reacted to Badruzeus in Clover General discussion   
    r4255 boot fine & run 10.13.1 Beta (17B42a) faster on my mach, thanks.  ​ 
     
     
     
    preboot.log_a43sj_r4255_gcc53.zip
    EFI_r4255_GCC53.zip
  23. Like
    syscl got a reaction from Badruzeus in Clover General discussion   
    Thank you @Slice and @Badruzeus @Regi Yassin 's report, please try r4255 to see if this indeed solve wrong MatchOS injection on your computer.
     
    syscl
  24. Like
    syscl got a reaction from Badruzeus in Clover General discussion   
    Thank you @Slice and @Badruzeus @Regi Yassin 's report, please try r4255 to see if this indeed solve wrong MatchOS injection on your computer.
     
    syscl
  25. Like
    syscl reacted to Slice in Clover General discussion   
    I can test only 9 hours later when I return home. Sorry for the delay. Sources 4253 looks good.
    I don't know. Can you provide any log?
    But why you tell about kernelToPatch if IOPCIFamily is a kext? 
×