해당 글에서는 루트 권한 없이 쉘에서 루트 권한을 얻는 방법을 소개하고자 한다.
여기서 사용된 에뮬레이터는 LDPlayer 9 이다.

초기 설정에서는 Root 권한 사용이 비활성화 된 상태이다.
그러므로 쉘에서는 루트 권한을 얻을 수 없다.

하지만 이를 해결할 수 있는 방법이 있다.
바로 안드로이드의 시스템 속성을 변경하면 된다.
LDPlayer 9 기준으로 C:\LDPlayer\LDPlayer9\system.vmdk 파일을 연다.

ro.secure가 1로 설정되어 있는 상태인데, 이를 0으로 바꾼다.

변경 사항을 저장하고 에뮬레이터를 재부팅 한 이후에 adb shell에 접근해보자.

$로 되어있던 표기가 기본적으로 #으로 표기되는걸 볼 수 있다.
쉘에서 루트 권한을 얻었다는 뜻이다.
루트 권한 없이 쉘에서 루트 권한을 얻는 방법을 소개해봤다.
필자는 https intercept 할때 android 9 이후의 보안 정책으로 가로채지 못하는 상황이 있었다.
이러한 상황에서 쉘 권한만 얻으려면 어떻게 해야할까 하고 삽질한 결과를 글로 작성하게 되었다.
보통 앱들에서는 루트 권한을 좋아하지 않으니 이러한 방법도 도움이 될꺼라 생각한다.
하지만 이러한 방법도 System Property의 ro.secure 값을 검증하면 감지가 가능하니 참고 바란다.