Скомпилируйте скрипт командной строки для iOS

Я написал кодировку iOKit для iOS. Вот код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mach/mach.h>
#include <mach/vm_map.h>
#include <IOKit/IOKitLib.h>

int main()
{
  io_service_t service = IOServiceGetMatching(kIOMasterPortDefault, IOserviceMatching("IOUSBHIDDriver")); // change service each time
  if(!service)
  {
    return -1;
  }
  io_connect_t connect;
  kern_return_t kr = IOServiceOpen(service, mach_task_self(), 0, &connect);
  if(kr != kIOReturnSuccess)
  {
    return -1;
  }

  uint32_t selector =3;
  uint64_t input[0];
        input[0] = 0x44444444444;
  IOConnectCallMethod(connect, selector, input, 1, 0, 0, NULL, NULL, NULL, NULL);
  printf("Did it crash? No? Do it again! -Toxic\n");
}

Я уже некоторое время пытаюсь скомпилировать это с GCC, но получаю всевозможные ошибки. Я хотел бы знать, если кто-нибудь точно знает, как скомпилировать инструмент командной строки для iOS. Благодарю.

1 ответ

Идк, вы нашли решение или нет, но в любом случае. Если вы хотите скомпилировать clang на типе устройства: clang -framework IOKit your_app.c -isysroot /var/theos/sdks/iPhoneos_whwhat_sdk_you_have -o output

И это должно скомпилироваться. На Mac же просто без isysroot & /var...

И если вы попробуете в xcode, убедитесь, что драйвер может работать внутри песочницы и включить заголовки iokit

:D

Насколько мне известно, не существует такого инструмента командной строки для (не взломанного) iOS, хотя вы можете выводить в журнал, используя NSLog из приложения. Кроме того, в наборе инструментов Apple для iOS используется clang (llvm), хотя команда 'gcc' обычно имеет псевдоним clang. Самый простой способ получить скрипт - это создать тестовый проект в Xcode, собрать его и посмотреть журнал сборки. Это показывает вам все команды, которые были запущены с какими аргументами.

Другие вопросы по тегам