Posted Image

 

The NEW version of MaciASL 1.4 b270 / Новая версия MaciASL 1.4 b270

 

Intel ACPI tools. The NEW version 20151124 compiled by me from original sources. Use iasl compiler with your MaciASL, DSDTSE or another editor (or Terminal).
To update your DSDTSE, simply right click on DSDTSE --> Show contents, drag'n'drop iasl into --> Contents --> Resources. Another editors have mostly the same way.
For MaciASL simply drag iasl to Contents --> MacOS and rename it to iasl5 (or iasl6 for MaciASL 1.4 b270+ builds)

 

For Terminal: simply copy all the utilities to /usr/local/bin. Then type in Terminal iasl [space] [keys separated with spaces] [space] and then drag'n'drop needed files to the Terminal's window.
Or type cd [space] then drag'n'drop origin folder (press F4 in Clover's GUI) [Enter], then simply type needed command, like this:


iasl -da -dl SSDT*.aml DSDT.aml

// or if there are only DSDT and SSDTs in origin folder (w/o APIC, FADT, HPET, etc.), then type:

iasl -da -dl *.aml
Intel ACPI тулзы. Новая версия 20151124 скомпилирована мною из оригинальных сырцов. Для использования с ДСДТ редактором MaciASL, DSDTSE или другим (или Терминалом).
Инсталим сюда: Открываем правой кнопкой по "любимому" редактору --> показать содержимое пакета --> Contents --> Resources --> перетаскиваем драг-н-дропом на эту папку файл iasl, на замену соглашаемся. Имеем свежий компайлер.

Для MaciASL перетаскиваем в подпапку Contents --> MacOS и даем ему имя iasl5 (или iasl6 для современных билдов MaciASL 1.4 b270+ )

 

Для Терминала: копируем все утилиты в папку /usr/local/bin. Затем в терминале набираем iasl [пробел] [ключи через пробел] [пробел] и перетаскиваем на окно Терминала требуемые файлы.
Либо набираем cd [пробел] и перетаскиваем папку origin (снятую в ГУИ Кловера по F4) [Enter], затем набираем требуемую команду, например:


iasl -da -dl SSDT*.aml DSDT.aml

// или если в папке origin только таблицы DSDT и SSDTs (без остальных APIC, FADT HPET и т.д.), то:

iasl -da -dl *.aml
Major tools and utilities:
  • iASL - ACPI Source Language Compiler, ACPI Table Compiler, and AML Disassembler
  • AcpiExec - Load ACPI tables and execute control methods from user space
  • AcpiDump - Obtain system ACPI tables and save in ASCII hex format
  • AcpiXtract - Extract binary ACPI tables from an ASCII acpidump
  • AcpiHelp - Help utility for ASL operators, AML opcodes, and ACPI Predefined Names
Miscellaneous utilities:
  • AcpiNames - Example utility that loads and displays the ACPI namespace
  • AcpiSrc - Convert ACPICA code to Linux format
  • AcpiBin - Miscellaneous manipulation of binary ACPI tables

 

iASL HELP:

Spoiler

ACPISpec ver. 6.0 / ACPI Спецификации 6.0

 

ACPI Spec ver. 5.1 / ACPI спецификации версии 5.1
ACPISPec ver. 5.1 Errata A / ACPI спецификации 5.1 Исправления А

 

Attension / Внимание ::

Spoiler

 

IMPORTANT / ВАЖНО :
===========================
To have a correctly disassembled DSL file w/o unexpected errors, you need to use the Terminal to decompile AML binaries. If you have a modern platform and more than 1 SSDT in your ACPI, you need to decompile all of them correctly. To decompile only DSDT.aml use -e key (to decompile in legacy ASL code mode you have to add -dl key instead of -d ) :

 

Чтобы получить корректно дизассемблированный DSL файл без непредвиденных ошибок декомпиляции, нужно использовать терминал для декомпиляции бинарников. Если вы владеете современной платформой и среди ACPI таблиц присутствует более 1 SSDT, необходимо их корректно декомпилировать. Чтобы декомпилировать только DSDT, используйте ключ -e: (для распаковки в легаси код ASL вместо ключа -d надо использовать новый ключ -dl ) :

 

New ASL+ decompile: / Декомпайл ASL+:


iasl -e SSDT*.aml -d DSDT.aml
iasl -e /@full_path@/SSDT*.aml -d /@full_path@/DSDT.aml
Legacy ASL decompile / Декомпайл ASL легаси:

iasl -e SSDT*.aml -dl DSDT.aml
iasl -e /@full_path@/SSDT*.aml -dl /@full_path@/DSDT.aml
===============================

 

To decompile all DSDT & SSDTs use -da key / Чтобы декомпилировать все DSDT и SSDT таблицы, используйте ключ -da:


iasl -da DSDT.aml SSDT*.aml
iasl -da -dl DSDT.aml SSDT*.aml

iasl -da /@full_path@/DSDT.aml /@full_path@/SSDT*.aml
iasl -da -dl /@full_path@/SSDT*.aml /@full_path@/DSDT.aml
Also add reference file ref.txt with unresolved External Methods and Argument count for each. Use -fe key:
Также можно добавить дополнительный реф.файл ref.txt c перечислением все еще нераспознанных методов и количество Аргументов для каждого. Используйте ключ -fe:
===============================

External (MDBG, MethodObj, 1) // <<<--- Unresolved Method with allocated Arguments count (text file ref.txt)

iasl -fe ref.txt -e SSDT*.aml -dl DSDT.aml
iasl -fe /@full_path@/ref.txt -e /@full_path@/SSDT*.aml -d /@full_path@/DSDT.aml
iasl -fe /@full_path@/ref.txt -e /@full_path@/SSDT*.aml -dl /@full_path@/DSDT.aml
iasl -fe /@full_path@/ref.txt -da -dl /@full_path@/SSDT*.aml /@full_path@/DSDT.aml
===============================

 

The command in the Terminal should be like this (with full paths of the files):
Команда в Терминале будет выглядеть так (с полными путями к файлам):


0:~ steve$ /Volumes/2\ UNIT\ 2T/MAC\ OS\ X\ \&\ HACK/ACPI/iASL_MAC/acpica-unix-20150619/iasl_20150619_64/iasl -fe /Volumes/Y/Users/stevebondaryan/Desktop/N551JM/origin/ref.txt -e /Volumes/Y/Users/stevebondaryan/Desktop/N551JM/origin/SSDT*.aml -dl /Volumes/Y/Users/stevebondaryan/Desktop/N551JM/origin/DSDT.aml
After pressing the Return key you should see something like this. It means that all of SSDTs were connected to parsing (but this example shows that not all Externals were resolved).
После нажатия клавиши Return вы увидите что-то наподобие этого. Это означает, что все ССДТ таблицы были прикреплены к парсингу (но в этом примере не были распознаны все External методы).
Spoiler

Here is an example how disassembler parses the Externals. / Вот пример, как дизассемблер парсит External методы.
Spoiler

And here you are a correctly disassembled Method ADBG, which refering to External Method MDBG with 1 Arg count
Вот пример корректно дизассемблированного метода ADBG, который ссылается на External метод MDBG c 1 Аргументом.
Spoiler

But without ref.txt parsing will be incorrect and compiler will return an error, like this:
Но без подключенного ref.txt файла парсинг кода пройдет неправильно и компилятор вернет ошибку компиляции:
Spoiler

Here is an original SSDT with MDBG method, which was lost. / Вот SSDT таблица с методом MDBG, которая была утеряна:
Spoiler

===================
And more: if you need to decompile your custom DSDT with your patches and if it still has many External Methods, you need to use all of the SSDTs this time too. If you deleted all of the Externals and those dependencies in the code, then no need to decompile with SSDTs and refs.

 

В дополнение: если вы решили декомпилировать свою кастомную DSDT с примененными патчами и в таблице все еще имеются в большом количестве External методы, в этом случае также требуется использовать терминал и включить в декомпиляцию все SSDT таблицы. Если вы удалили все External методы со всеми зависимостями в коде, тогда не требуется использовать при декомпиляции SSDT таблицы и реф.файлы.
===================

 

Changelog 20151124:

Spoiler

 

OLD CHANCHELOG:

Spoiler

CHANGELOG PROVIDING C-STYLE ASL+:
Spoiler

Post a Comment