Android 4.1 (Jelly Bean)에서 원시 ARM 실행 파일을 실행할 수있는 메소드를 찾고 있습니다. 예를 들어, 고전 C 프로그램 ARMv7a 실행에Jelly Bean에서 원시 ARM 실행 파일 실행
// hello.c
#include <stdio.h>
int main() {
printf("Hello world");
}
를 컴파일, 안드로이드 NDK를 사용하여 hello
말을하고 안드로이드 쉘에서 실행합니다. 나는 방법 등이
adb shell chmod 755 /data/local/hello
에 의해 실행되는 것을 허용하고 사용 쉘에서 그들을 호출 할
adb push hello /data/local
변경 허가에 의해 /data/local
에 실행 파일을 밀어으로 웹에 제안 시도
/data/local/hello: not found
:
adb shell /data/local/hello
의 마지막 단계는 오류와 함께 실패
하지만 분명히 파일이 있습니다. 문제는 젤리 빈의 쉘이 실행을 허용하지 않는다는 것입니다. 외계인 바이너리가 더 이상 존재하지 않습니다. 누구든지 이것을 확인하고 해결책을 줄 수 있습니까?
이것은 내가 볼 수있는 것처럼 가까운 Android 관련 질문을위한 프로그래밍이 아닙니다. 나는 이것이 안드로이드 사용자에게 하드 코어 관심이 될 것이라고 생각합니다. – ale
@Chahk 감사합니다. 그러나 나는 그것이 원래의 질문에 대한 대답이라고 생각하지 않는다. 궁극적으로, 나는 'dd'와 같은 프로그램을 크로스 컴파일하거나 ARM 미리 빌드 된 버전을 사용하여 실행하고 싶습니다. 이제는 시스템에 새로운 바이너리를 설치하는 'busybox'와 'kbox'를 회상합니다. 그래서 여기서 보안 문제는 없다고 생각합니다. 나는 그들이 그 일을 어떻게하는지 보도록 그 일을 조사 할 것이다. –
@Chahk - 스택 오버플로 문제는 2011 년 10 월부터 있었고, 이에 따라 안드로이드의 구 버전에 대한 답변을 얻었습니다. Jelly Bean *에 대한 대답은 다를 수 있습니다. 질문자는 실제로 누군가가 Android가 아닌지를 확인하기를 원합니다. 이는 Android에 대한 실용적인 대답입니다. –