Just to make absolutely sure, please try the attached version of your EFI folder. If that still yields the same result, I guess you need a custom battery patch - for whatever reason. This will take some time.
I'm not yet sure why your system tripped up on _STA, since it only uses an 8 bit sized field inside the if-statement. I now patched _BST and _BIF by creating a custom SSDT-BATT, please give this a try. If it still trips up, re-attach the *current* output of Hackintool from boot, since at least EC should have changed to H_EC inside the error log. I just want to see things change and apply.
@BlvckBytes Just tried,_STA errors still present,and _BIF and _BST generated AE_BAD_PARAMETER errors. with following errors :B1DC/B1FV/B1FC/XX15/B1ST/B1CR/B1RCB1VT Namespace lookup failure, AE_ALREADY_EXISTS
For that _STA error,I believe it is caused by insufficient code as per ACPI spec:
The OS runs _REG control methods to inform AML code of a change in the availability of an operation region. When an operation region handler is unavailable, AML cannot access data fields in that region. (Operation region writes will be ignored and reads will return indeterminate data.
The _STA tried to access ECWR before _REG method in EC,but I don't know why it still fails to read battery stats after boot up.
I'm sorry, I totally messed up on the region patch using duplicate names, please try again. Now, those AE_ALREADY_EXISTS errors should be gone. If you still experience the _STA issues, it would be interesting to know if they only appear on boot, since the region handler should now be available.
Still not working,I got these errors:
kernel: (AppleSmartBatteryManager) <AppleSmartBatteryManager`AppleSmartBattery::_smcKeyInfo(unsigned int, int*, bool*) const> Failed to read keyInfo . rc:0x84
kernel: (AppleSmartBatteryManager) <AppleSmartBatteryManager`AppleSmartBattery::smcKeysToDictionary(smcToRegistry*) const> SMC Key is not supported.
I think ec memory regions are broken and system can't read correct info from it..