Android 8.0 버전에는 개발자가 디버깅 환경을 개선하여 더 나은 애플리케이션을 만들 수 있는 커널 개선사항이 포함되어 있습니다.
arm64 Android 커널은 4/8바이트로 정렬되지 않은 메모리 주소에 대해 watchpoint 설정을 지원하고 이러한 주소에 대한 모든 액세스를 보고합니다.
구현
이 기능은 모든 ARM 64비트 기기에서 실행됩니다. 32비트 하드웨어/커널에 대한 관련 지원을 추가하는 것은 선택 사항입니다. 필요한 모든 커널 수정 작업이 이미 수행되었습니다.
이 기능은 4.4 이상의 일반 커널에 포함되어 있습니다. 이 기능이 아직 포함되지 않은 커널에 이 기능을 추가하려면 커널 빌드에 필요한 CL을 선택하세요. 커널 코드베이스가 시간이 지남에 따라 변경되어 패치를 약간 조정해야 했기 때문에 커널의 기반이 되는 버전에 따라 패치 세트를 선택합니다.
- https://android.googlesource.com/kernel/common/+/91495bc622e9356dd63a7c77b98a21f0e2f5d2b2
- https://android.googlesource.com/kernel/common/+/7409857a0717fa78dc936ea08099880be893156c
- https://android.googlesource.com/kernel/common/+/b48318f371e8a8b98238deac868bc7af8ed8ba4b
- https://android.googlesource.com/kernel/common/+/edc166a8714b012a3dd207e437c772ae2a264eca
- https://android.googlesource.com/kernel/common/+/85c450ac7ac0a69aca4c6eb845e419ae092d8c86
- https://android.googlesource.com/kernel/common/+/67de4de5628a47fa794920745dc7869c97b558d3
- https://android.googlesource.com/kernel/common/+/32649b0a393303a97fab6003c5757ff7b100331a
- https://android.googlesource.com/kernel/common/+/d32793b6be517dffa29329a92ffcc688e74bc690
이 기능은 디버거 작성을 지원하기 위해 ptrace
API의 확장을 구현합니다.
유효성 검사
업스트림 저장소에 커널 자동 테스트가 있으며, CTS 테스트가 추가되어 새 커널 API를 실행합니다.
https://android.googlesource.com/platform/bionic/+/master/tests/sys_ptrace_test.cpp