Acc dram hal что это
Перейти к содержимому

Acc dram hal что это

  • автор:

What is AacKingstonDramHal_x86.exe?

The .exe extension on a filename indicates an exe cutable file. Executable files may, in some cases, harm your computer. Therefore, please read below to decide for yourself whether the AacKingstonDramHal_x86.exe on your computer is a Trojan that you should remove, or whether it is a file belonging to the Windows operating system or to a trusted application.

AacKingstonDramHal_x86.exe file information

Windows Task Manager with AacKingstonDramHal_x86

AacKingstonDramHal_x86.exe process in Windows Task Manager

The process known as Kingston AURA DRAM Component belongs to software unknown by ASUSTeK Computer (www.asus.com).

Description: AacKingstonDramHal_x86.exe is not essential for the Windows OS and causes relatively few problems. AacKingstonDramHal_x86.exe is located in a subfolder of «C:\Program Files»—common is C:\Program Files\ASUS\KINGSTON_Aac_DRAM\. Known file sizes on Windows 10/11/7 are 497,176 bytes (50% of all occurrences), 252,824 bytes or 252,840 bytes.
The AacKingstonDramHal_x86.exe file is digitally signed. There is no file information. The file is not a Windows core file. The program is not visible. The software can be removed using the Control Panel’s Add\Remove programs applet. Therefore the technical security rating is 34% dangerous.

Important: Some malware camouflages itself as AacKingstonDramHal_x86.exe, particularly when located in the C:\Windows or C:\Windows\System32 folder. Therefore, you should check the AacKingstonDramHal_x86.exe process on your PC to see if it is a threat. We recommend Security Task Manager for verifying your computer’s security. This was one of the Top Download Picks of The Washington Post and PC World.

Score

User Comments

There are no user opinions yet. Why not be the first to write a short comment?

Best practices for resolving AacKingstonDramHal_x86 issues

A clean and tidy computer is the key requirement for avoiding problems with AacKingstonDramHal_x86. This means running a scan for malware, cleaning your hard drive using 1 cleanmgr and 2 sfc /scannow, 3 uninstalling programs that you no longer need, checking for Autostart programs (using 4 msconfig) and enabling Windows’ 5 Automatic Update. Always remember to perform periodic backups, or at least to set restore points.

Should you experience an actual problem, try to recall the last thing you did, or the last thing you installed before the problem appeared for the first time. Use the 6 resmon command to identify the processes that are causing your problem. Even for serious problems, rather than reinstalling Windows, you are better off repairing of your installation or, for Windows 8 and later versions, executing the 7 DISM.exe /Online /Cleanup-image /Restorehealth command. This allows you to repair the operating system without losing data.

To help you analyze the AacKingstonDramHal_x86.exe process on your computer, the following programs have proven to be helpful: A Security Task Manager displays all running Windows tasks, including embedded hidden processes, such as keyboard and browser monitoring or Autostart entries. A unique security risk rating indicates the likelihood of the process being potential spyware, malware or a Trojan. B Malwarebytes Anti-Malware detects and removes sleeping spyware, adware, Trojans, keyloggers, malware and trackers from your hard drive.

Русские Блоги

Принцип работы уровня абстракции оборудования HAL (Hardware Abstract Layer)

Значение HAL

Уровень аппаратной абстракции — это структура абстрактного уровня между ядром ядра Android и верхним уровнем. Он представляет собой инкапсуляцию драйвера Linux и предоставляет унифицированный интерфейс для верхнего уровня. Приложению верхнего уровня не нужно знать, как оборудование нижнего уровня реализует работу. Оно защищает детали реализации нижнего уровня.

Его положение во всей архитектуре Android показано на следующем рисунке:

Традиционная работа оборудования Linux в основном реализована в драйвере Linux в пространстве ядра, так почему нам нужно разделить работу оборудования на две части: HAL и драйвер Linux? И HAL принадлежит пространству пользователя, а драйвер linux принадлежит пространству ядра.
не является избыточным по многим причинам:
1. Google построил фреймворк HAL и предоставляет унифицированный API для верхнего фреймворка для вызова HAL через JNI. Разработчикам оборудования или пересадчикам нужно только разрабатывать в соответствии с фреймворком, не требуя усилий. Для реализации взаимодействия с верхним слоем сосредоточьтесь на реализации самого слоя hal.
2. С коммерческой точки зрения многие производители оборудования не хотят открывать исходный код некоторых основных вещей, связанных с их оборудованием. Если они помещают все свои драйверы оборудования в пространство ядра для реализации драйверов, тогда Должен соответствовать соглашению GPL и иметь открытый исходный код. С помощью уровня HAL они могут поместить реализацию некоторых основных алгоритмов и т.п. на уровень HAL, а уровень HAL расположен в пользовательском пространстве и не принадлежит ядру Linux. Он следует протоколу Apache, как и исходный код Android. Это не обязательно. Открытый источник.

Смысл существования уровня HAL заключается в вышесказанном. Давайте проанализируем архитектуру и принципы реализации HAL на основе исходного кода уровня HAL и проанализируем его более подробно.

HAL важная структура данных

Код уровня Android HAL в основном находится в / hardware / libhardware, и мы идем сверху вниз.

На уровне HAL все типы оборудования описываются в виде аппаратных модулей, которые описываются структурой hw_module_t, и каждый тип аппаратного модуля имеет собственное независимое оборудование, которое описывается структурой hw_device_t .

Когда приложение верхнего уровня вызывает аппаратное обеспечение через JNI, оно должно сначала получить структуру hw_module_t, которая является аппаратным модулем, а затем может управлять этим оборудованием. Итак, давайте посмотрим, как выглядят эти два определения структуры.

Их определения находятся в /hardware/libhardware/include/hardware/hardware.h.

A. hw_module_t представляет собой аппаратный модуль, он в основном содержит некоторую информацию об аппаратном модуле, определение структуры:

Б. Давайте еще раз взглянем на структуру hw_device_t, которая в основном используется для описания атрибутивной информации аппаратного устройства в модуле. Аппаратный модуль может иметь несколько аппаратных устройств. Например, модуль датчика, sensor_module, является аппаратным модулем, но в мобильном телефоне есть много типов датчиков, таких как ускорение acc_sensor, магнитный датчик M_sensor и т. Д., Тогда все они принадлежат к sensor_module, но все они имеют свою собственную структуру hw_device_t Описать. hw_device_t определяется следующим образом:

Среди них третий модуль-член указывает на структуру аппаратного модуля, к которой принадлежит это устройство.
Последний указатель на функцию close должен указывать на функцию, чтобы закрыть устройство.

На этом работа над двумя основными структурами HAL завершена. Давайте продолжим. Мы объединим исходный код, чтобы увидеть, как работает уровень hal, как верхний уровень получает аппаратные модули, аппаратные устройства, а также как загружать и анализировать. Динамическая разделяемая библиотека.

Принцип реализации HAL

Мы знаем, что некоторые производители оборудования не хотят открывать некоторые из своих основных кодов, поэтому они помещают эти коды на уровень HAL, но как гарантировать, что он не открыт? Разве код слоя HAL не дает всем знать о загрузке? Фактически, основной код HAL производителя оборудования имеет форму разделяемой библиотеки, и HAL будет автоматически загружать и вызывать связанную разделяемую библиотеку каждый раз, когда это необходимо. Так как же загрузить и найти общую библиотеку, соответствующую определенному аппаратному устройству? Это то, что мы все должны сказать.

Приложение верхнего уровня вызывает функцию hw_get_module уровня HAL для получения аппаратного модуля через JNI. Эта функция является точкой входа для взаимодействия верхнего уровня с HAL. Итак, если мы посмотрим на исходный код в процессе выполнения вызова программы, эта функция будет первой вызываемой функцией уровня HAL. Ниже мы рассмотрим
Следите за процессом выполнения программы. Например, в frameworks \ native \ services \ sensorservice \ SensorDevice.cpp

Здесь hw_get_module () вызывается для получения структуры аппаратного модуля hw_module_t. С hw_module_t устройство, соответствующее аппаратному модулю, может быть открыто через его внутренний метод open, а аппаратное устройство может управляться с помощью некоторых методов в структуре.
Затем давайте посмотрим, как реализована функция hw_get_module.
Функция hw_get_module определена в файле hardware \ libhardware \ hardware.c. Откройте этот файл, и вы увидите следующее определение:

Это прототип функции. Переданный идентификатор параметра соответствует идентификатору аппаратного устройства. Это строка. Например, идентификатор датчика, с которым мы более знакомы, — это SENSORS_HARDWARE_MODULE_ID. Это то же самое, что определение идентификатора в структуре HAL_MODULE_INFO_SYM. Это будет объяснено ниже. К. Функция hw_get_module находит структуру аппаратного модуля, соответствующую этому идентификатору, согласно этому идентификатору. Если соответствующая структура hw_module_t найдена, ее указатель будет помещен в * module.
Затем мы вводим hw_get_module_by_class (), чтобы увидеть, как это реализовано:

Значение переменной prop получается предыдущей функцией property_get (variant_keys [i], prop, NULL). Фактически, эта функция находит соответствующее имя варианта в системе через свойства массива ariant_keys. Разные платформы получают разные значения свойств. Затем передайте параметры функции hw_module_exists (), чтобы определить, существует ли библиотека.
hw_module_exists:

Эта функция сначала собрала путь вместе с HAL_LIBRARY_PATH2 как "/ vendor / lib / hw", предполагая, что полученное значение prop — tout, а идентификатор аппаратного модуля, который должен быть получен, — светодиоды. В этом случае значение собранного пути / vender /lib/hw/leds.tout.so, а затем определите, существует ли файл. Существование возвращает 0.
Варианты_ключа определяются следующим образом:

Приведенный выше код в основном предназначен для поиска в библиотеке и получения пути к библиотеке динамической компоновки, а затем для вызова функции загрузки для загрузки файла библиотеки по указанному пути. Функция загрузки является ключом. Посмотрим на load ():

Вы можете увидеть несколько параметров, передаваемых функцией загрузки. Первый параметр — это идентификатор аппаратного модуля, соответствующего динамической библиотеке, которую необходимо загрузить.

Второй параметр — это путь к динамическому инвентарю, который получается путем поиска в библиотеке перед функцией hw_get_module.

Третий параметр — это структура аппаратного модуля, которую нам нужно получить, через которую она передается в hw_get_module, а функция hw_get_module передается в jni через параметры.

Сначала вызовите dlopen, чтобы открыть общую библиотеку, эта функция находит библиотеку по пути переданной библиотеки и открывает ее, возвращает дескриптор операции, а затем вызывает функцию dlsym для анализа открытой библиотеки и получения соответствующего аппаратного модуля, содержащегося в библиотеке. Составьте и верните обратно. Все производители оборудования или трансплантаты оборудования должны заполнить структуру аппаратного модуля hw_module_t, относящуюся к их собственному оборудованию в соответствии с этой архитектурой HAL для использования.

После синтаксического анализа dlsym получается hw_module_t. Идентификатор в структуре, полученной в результате синтаксического анализа библиотеки, сравнивается с переданным идентификатором, чтобы увидеть, согласованы ли они. Если они согласованы, то подтверждается правильный аппаратный модуль.

Наконец, указатель на структуру hw_module_t передается третьему параметру и передается функции hw_get_module.

Напоминаем, что макрос HAL_MODULE_INFO_SYM_AS_STR очень важен:

Каждый модуль на уровне аппаратной абстракции должен иметь символ экспорта HAL_MODULE_IFNO_SYM, а именно «HMI», который указывает на настраиваемую структуру модуля уровня аппаратной абстракции. В качестве примера возьмем датчик в \ hardware \ libhardware \ modules \ sizes \ multihal.cpp.

Здесь определяется структура sensor_module_t с именем HAL_MODULE_INFO_SYM. Фактически, каждый аппаратный модуль должен определять структуру с именем HAL_MODULE_INFO_SYM, а общий член имеет тип hw_module_t (этот абзац объясняется при определении структуры hw_module_t) . Обратите внимание, что переменная HAL_MODULE_INFO_SYM здесь должна иметь это имя, чтобы компилятор изменил экспортированный символ этой структуры на «HMI», а функция dlsym могла найти эту структуру и вернуть адрес модуля, соответствующий символу в соответствии с символом.

Реализация модульного метода

Кроме того, методы struct hw_module_methods_t * определены в структуре hw_module_t; hw_module_methods_t
Этот указатель методов указывает на структуру методов, связанных с этим аппаратным модулем. Должны быть некоторые указатели на функции, которые не заглядывают внутрь, но в нем есть только один указатель на функцию. Вы можете посмотреть определение:

Мы видим, что на самом деле существует только один указатель на функцию, а open — это функция для открытия аппаратного устройства в аппаратном модуле.
В качестве примера возьмем датчики. В файле hardware \ libhardware \ modules \ sizes \ multihal.cpp код определения метода открытия устройства датчиками выглядит следующим образом

Давайте введем open_sensors, чтобы увидеть его конкретную реализацию:

Вы можете увидеть некоторые назначения устройству

Вышеупомянутое — это сводка моих знаний об уровне аппаратной абстракции за последние два дня.

Name already in use

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

About

Implement DRAM Hal for ASUS Aura Sync.

Stars

Watchers

Forks

Releases

Packages 0

Languages

Footer

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Çözüldü "AAC MB HAL" nedir?

ne.JPG

Bunlar nedir?
Hash falan yazıyor, Mining virüsü olabilir mi?

Ekran kartım boşta kendini %0-%1 arası kullanıyor.

ArıcanSoft
ArıcanSoft
Hectopat

Sistem Özellikleri [Sistem 1] İşlemci: AMD Ryzen 5 5500 Ekran kartı: ASUS DUAL RTX 3060 V2 OC RAM: 8X2 3200 MHz SSD: WD SN570 500GB PSU: FSP HYPER H3-550 80+ PRO 550W Kasa: VENTO VG15FE RGB ATX

[Sistem 2] İşlemci: İntel Core i3 3217U Ekran kartı: NVIDIA GT740M RAM: 4X1 1600 MHz Disk: Sandisk U100 24GB / Hitachi HTS545050A7E380 500 GB Cinsiyet Erkek

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *