루팅 여부 확인을 하는 방법으로
1. try {
를 실행해서 예외가 발생하면 루팅이 안된걸로 판단하는 걸로 압니다.
다른 방법은 2. system/bin/su 가 있는지 확인하는 건데 개발상 1번의 방법이
간편해서 구현해 봤습니다.
요즘은 저 위치가 변경이 된걸로 압니다.
그런데 에뮬레이터에서 1의 방법에서 예외가 발생하지 않습니다.
에뮬레이터에 su가 없고 루팅이 된 상태가 아닐텐데 이유를 모르겠습니다.
그리고 커널 버전을 확인해서 루팅 여부를 판단하는 것이 괜찮을지 궁금합니다.
루팅으로 커널 버전을 수시로 변경이 가능하다면 소용이 없을 것 같은데 잘 몰라서 질문합니다.
답변 주셔서 감사합니다.
그런데 에뮬레이터에서 adb shell 로 접속한 후 su 명령을 실행해보면 아무 변화가 없습니다.
정확하게는 cmd로 adb shell를 해보면 #표시가 나오고 아무변화가 없습니다.
su를 입력해야 하는데 커서가 사라집니다.
그리고 이전까지는 에뮬레이터는 루팅이 안된 상태로 알았는데요.
http://kaludin.egloos.com/2645987 에서 내용을 참고 하고 여기서 DetermineRooting.apk
를 다운받고 에뮬레이터에서 실행을 해보면 루팅이 안되었다고 나옵니다.
참고 한곳에서 만든 어플로 확인해 보면 루팅이 안되어 있다고 하고 제가 참고해서 코드를 써보면
루팅이 되었다고 나오고 이거 어떤게 정확한건지 모르겠습니다.
그리고 allow를 선택할 수 있는 알림창은 에뮬레이터라서 원래 안뜨는거죠?
adb shell를 실행하면 아무변화가 없으니 확인도 안되는 상태입니다.
에뮬레이터가 확실히 루팅이 되어 있는 상태인지 궁금합니다.
확인이 안되서요.
adb shell 에서 su 해서 오류메시지가 안나오면 정상적으로 된 겁니다.
su 명령이 없을경우 명령을 찾을 수 없다고 오류가 나지요.
답변주셔서 감사합니다.
저는 adb shell에서 더 진행이 안됩니다.
su까지 가면 좋겠는데 안되네요.
코드상으로 예외가 발생하지 않는 거보면 말씀하신게 맞는 것 같습니다.
그런데 앞서 말한 사이트에서 만든 어플로는 에뮬레이터가 루팅이 안된 상태라고 나오고
그 사이트에서도 같은 방법을 쓰는데요.
어플이 잘 못된 건지도 모르겠고 실제 루팅된 폰에서 저 어플을 실행 보면 알 것 같은데 확인이 안되네요.
아무튼 답변 감사합니다.
직접 코드를 입력해서 확인한게 맞겠지요.
2.2 버전인데 에뮬레이터는 기본적으로 루팅이 된것으로 알겠습니다.



