기본적으로 사용자에게 카메라 피드가 표시되고이 앱이 실행 된시기를 알고 싶습니다. AVCaptureSession을 시작하고 어떤 앱이 시작했는지 감지 할 수있는 탈옥수 감지 방법?
나는AVCaptureSession
의
SBApplication *topApp = [(SpringBoard *)[UIApplication sharedApplication] _accessibilityFrontMostApplication];
-(void)startRunning;
하지만
가 작동하지 않습니다에 후크하려고 노력했다.sharedApplication
은
null
을 반환합니다. 나는 또한
%c(SpringBoard)
또는
objc_getClass("SpringBoard")
에 메서드를 호출하려고했지만 동일한 결과가있었습니다. 이 외에도
, 내가 필터에 지정된 있지만 com.apple.springboard
같은 여러 번들을 사전을 메시지 프로그램에서 카메라를 열 경우에만 작동 후크, com.facebook.Facebook
등
내가 잘못 뭐하는 거지? AVCaptureSession
다른 앱에서 API를 사용하지 않습니까?
저급 기능을 찾는 방향으로 나를 안내해 줄 수 있습니까? 아니면 응용 프로그램/개발자별로 무엇입니까? 그렇더라도 비디오 렌더링을 위해 다른 API를 사용할 수있는 앱이 너무 많아서 막 다른 골목에 이르렀거나 나쁜 타협을했다고 생각합니다. – oneNewbieCoder
물론 하위 수준 기능의 경우 nm 및 otool과 같은 도구를 사용할 수 있습니다 (자세한 내용은 http://iphonedevwiki.net/index.php/Reverse_Engineering_Tools 참조). creker의 대답을 보았을 때, 그는 또한 IPC를 알림 형식으로 언급했습니다. AVCaptureSession이 호출 될 때 AVCaptureSession이 사용되는 시점을 알 수 있기 때문에이 방법으로 (적어도 우리가 생각한 것처럼) 말합니다. 파일을 사용하면 CPU주기를 낭비하는 폴링이 발생합니다. 막 다른 골목에 대해서는 실제로는 없습니다. 정보를 얻을 수있는 곳과 다른 개발자와 연락 할 수있는 곳이 많습니다. – uroboro
@uroboro, 폴링은 그것을 수행하는 한 가지 방법입니다 (정기적으로 변경 사항을 확인하면 많은 CPU를 낭비하지 않을 것입니다). 'kqueue'를 사용하여 폴링없이 파일/디렉토리 변경 사항을 모니터링 할 수도 있습니다. – creker