Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 2.27 KB

README_ru.md

File metadata and controls

25 lines (15 loc) · 2.27 KB

EN

hisi-trace

HiSilicon tracer

Утилита для запуска Sofia от XM не в стоковом окружении. Использует функции линуксового ядра ptrace. Позволяет производить портирование стоковых функций Софии в целевую систему без загрузки в оригинальную прошивку.

Описание работы утилиты:

Утилите в аргументах нужно указать путь до Софии, пример запуска: hisi-tracer /path/to/Sofia.

Далее утилита создаст дочерний процесс Софии и начнёт перехват системных вызовов. Будут перехвачены вызовы открытия файлов /proc/mtd /dev/mtd /dev/mtd0 ... всех блоков mtd. На вызовы ioctl Софией для этих файлов с кастомными командами XMMTD_ будет возвращён 0 (SUCCESS). Имена перехватываемых файлов будут изменены, чтобы ядро открыло файлы mtd с оригинальной прошивки. Схема изменения имён простая - четвёртый символ имени меняется на 'i'. Т.е. для /proc/mtd это будет /pric/mtd, для /dev/mtd будет /dei/mtd и так далее. Т.е. перед запуском утилиты нужно создать файлы /pric/mtd, /dei/mtd... Их нужно сдампить из оригинальной прошивки откуда была взята София.

Ядро линукса должно быть собрано с опцией ptrace. Заодно включите в сборку strace, пригодится. Для корректной работы Софии так же нужны модули HIMPP с оригинальной прошивки, они должны быть загружены.

Сборка:

Используется система сборки cmake. Там же где и openipc собирается в корне выполняем:

make -j1 V=s package/feeds/glutinium/hisi-trace/{clean,compile,install}