patchoat 닫기
art patchoat
This tool takes already compiled images and oat files and changes their base address, acting as a cheap form of relocation.
Add a –include-patch-information flag to dex2oat and code to add required patch information to oat files created with the quick compiler.
https://android.googlesource.com/platform/art/+/53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c
patchoat 닫기
WITH를 켰지만...PREODEX 이후 odex 파일이 생성되었지만 처음 켤 때android는patchoat 동작을 하고 odex 파일의 편이량을 수정하여/data/dalvik-cache/arm/디렉터리 아래에 놓습니다.이렇게 하는 것은 주로 안전을 고려하기 위해서이다. 왜냐하면 ELF 파일이load에 의해 시스템에 들어간 후에 매번 같은 위치를 비추면 hack에 의해 이 점을 이용하여 공격하기 쉽기 때문이다.만약 이러한 안전성을 고려하지 않는다면, 이 속성을 닫을 수 있습니다.닫는 방법은 다음과 같습니다:/art/runtime/globals.h
static constexpr bool kDefaultMustRelocate = false; // patch oat。
MTK 플랫폼은 다음과 같은 부분을 수정해야 한다. 그렇지 않으면 몇몇 삼자 도구가 실행되지 않는다./frameworks/base/core/jni/androidRuntime.cpp
#if 1 // if 1 #if 0, 。
if (!bootOatDone) {
if (!strcmp(className, "com.android.internal.os.RuntimeInit")) {
waitOatDone();
bootOatDone = true;
}
}
#endif
이렇게 수정하면 데이터 구역의 공간을 줄일 수 있을 뿐만 아니라, 작동 속도도 빨라질 수 있지만, 위험은hack에 의해 고정된 맵 주소를 이용하여 공격하기 쉽다는 것이다.
4
4