[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;
|