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;

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