FAQ FM
Устройство
Безопасность

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

[iOS] Как программно определить, что планшет джейлбрейкнутый?

uses
  iOSapi.Foundation, MacApi.Helpers;

function SharedFileManager: NSFileManager;
begin
  Result := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager);
end;

// Проверка доступности системной командной оболочки Bash
function IsBashAccessible: Boolean;
var
  FileBashHandle: THandle;
begin
  FileBashHandle := FileOpen('/bin/bash', fmOpenRead);
  try
    Result := FileBashHandle <> INVALID_HANDLE_VALUE;
  finally
    FileClose(FileBashHandle);
  end;
end;

// Проверка наличия установленного приложения Cydia
function IsCydiaInstalled: Boolean;
begin
  Result := SharedFileManager.fileExistsAtPath(StrToNSStr('/Applications/Cydia.app'));
end;

function IsJailbroken: Boolean;
begin
  {$IF Defined(IOS) AND Defined(CPU386)}
  Result := False;
  {$ELSE}
  Result := IsBashAccessible or IsCydiaInstalled;
  {$ENDIF}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(BoolToStr(IsJailbroken));
end;

При использовании материала - ссылка на сайт обязательна