티스토리 뷰

생활 속/모바일

SuperSU 수정 버전

이치로 2013. 7. 10. 17:09

개요


루팅은 루트 권한을 얻는 것을 의미하는데, 시스템 영역 내에 존재하는 su 바이너리에 요청하여 해당 앱이나 프로세스가 루트 권한을 가지게 (grant) 된다. (프로그램 레벨에서 자세한 과정은 모름.) 루팅이 되었는지 안되었는지 판단하는 가장 간단한 방법은 루트 권한 요청을 해서 이게 승인이 되면 루팅된 디바이스라고 간주하는 것이다. 그렇기 때문에, 아무 앱이나 루트 권한을 요구한다고 해서 허가하지 않고 보류하거나 사용자의 결정을 기억하여 관리하는 앱이 있다. 예를 들면 CM에 포함된 Superuser 같은 것들이다.


특히, Chainfire의 SuperSU는 루팅에 필요한 su 바이너리를 숨기는 기능을 앱 자체에 내장하여, 루팅 언루팅을 재부팅 없이 가능하게 해서 많은 인기를 끌고 있다. 이런 인기에 힘입어, 한국의 인터넷 뱅킹 앱이나 기타의 금융 앱들은 아래의 추가적인 방법을 통해서 루팅이 되었는지 한 번 더 확인한다.

  • /system/app/Superuser.apk가 있는지
  • /system/bin/.ext/ 폴더가 있는지 혹은 /system/bin/.ext/.su가 있는지

위 폴더는 SuperSU에서 사용하는 앱 이름과 su 바이너리를 숨겨 놓는 폴더 들인데, 이것을 바꿔주면 위의 문제로 인한 루팅 체크를 회피할 수 있다. 이것을 적용한 것을 SuperSU 수정 버전이라고 한다.




수정 방법


Chanfire의 SuperSU를 다운 받아서, 맛클의 무지개깔창 님 방법을 이용해서 고치면 된다. 이를 참고한 나의 방법은 여기에 정리해 두었다.




배포


먼저 이 앱이 모든 버전, 플랫폼, 스마트폰에 잘 동작한다고 보장할 수 없음을 알립니다. 그러므로 이 앱이 어떻게 동작하고 어느 정도 루팅과 안드로이드 시스템에 지식이 있는 분들께서 사용하시면 좋겠습니다.


userSU 1.65와 이전 버전 다운로드


+20131112

제가 따로 수정버전을 만들어서 배포한 이유는 맛클에서 배포되는 버전이 가입을 다운을 받을 수 있었기 때문이지만 이제는 제작자 분께서 드롭박스 링크로 배포를 해 주십니다. 그래서 제가 더 이상 해야할 이유도 없어졌고, 버전업이 되면서 (특히 1.69 이상부터) 제 실력으로는 모든 기능이 동작하도록 고칠 수가 없어졌습니다. 에러가 많이 생기네요. 그래서 중단하기로 했습니다. 이제부터는 아래에서 다운 받으시길 바랍니다. 그 동안 써 주셔서 감사합니다.


배포정보 http://www.matcl.com/?r=home&m=bbs&bid=appDB

다운로드 http://db.tt/K7gQyEI0


제 자료를 쓰고 계신 분들은 여기서 REMOVE-userSU.zip을 받아서 한 번 플래싱해서 깔끔하게 지운 뒤에 사용하심이 좋겠습니다.


+20140112

무지개깔창 님의 드롭박스가 사라졌습니다.

감사하게도 SPAPA님이라고 수정버전을 만들어주시는 분이 나타나셨군요. http://spapa1004.tistory.com/164

그나저나 드롭박스는 왜 안되는 것인지...





설치


기본적으로 recovery (CWM이나 TRWP)를 통한 zip flashing을 추천한다. 이 방법으로 하면 update-script를 통해서 디바이스 내에 있는 루팅관련 찌꺼기를 (최대한) 지우고 설치하기 때문에 중복되어 루팅 앱끼리 꼬일 염려가 없다. (기보다는 적다.)


수동 설치는 zip 파일 내에 있는 3개의 파일(아래 리스트 참조)을 경로에 맞게 던져넣고 퍼미션 설정을 한다. 아마 644일 것이다. 번거로워서 이 방법은 추천하지도 않을 뿐더러, 내가 잘 사용하지 않으므로 물어봐도 모른다.


zip 파일 안에 있는 apk를 통해서 설치하는 것도 가능하다. Google Play 스토어에서 받아서 설치하는 것처럼... 근데 이때는 미리 루팅이 되어 있어야 한다. 또, 디컴파일을 해보면 내부적으로 루팅관련 찌꺼기를 지우는 코드가 있기는 한 것 같은데, 수정하면서 다른 이름으로 바뀌게 되므로 무용지물이 된다. 마지막으로 이 경우에는 system이 아닌 data에 설치된다는 것도 (다 알겠지만) 참고하길 바란다.


설치가 정상적으로 되면 아래 3개의 파일을 확인할 수 있다.

  1. /system/app/userSU.apk 혹은 /data/eu.chainfire.supersu-1.apk
  2. /system/bin/.user/.su
  3. /system/xbin/su




사용


SuperSU 앱의 SETTINGS으로 가면 "Enable Superuser" 메뉴를 통해서 임시 루팅/언루팅을 할 수 있다. 체크 해제하면 /system/xbin/su가 지워지면서 언루팅이 되고, 다시 체크를 하면 /system/bin/.user/.su에서 다시 복사해 넣어서 루팅 이 가능해진다.


SYSTEM에 보면 "Install SuperSU into /system" 메뉴를 이용해서 apk로 깐 것을 /system/app/으로 옮길 수 있다. 왠만하면 system 앱으로 만드는 것이 낫다.


CLEANUP 섹션을 보면 "Reinstall" 메뉴가 있는데, 위의 3개 설치된 파일 중 1, 2를 지우고 3만 남겨서 루팅된 상태로 만든다. "Switch superuser app" 메뉴도 동일하게 1, 2는 지우고 3은 남기는데, 차이는 /data 영역의 저장된 앱 정보도 다 날아간다. 마지막 "Full unroot"를 이용하면 3번까지 없애서 깔끔하게 언루팅이 가능하다.




그래도 루팅이 감지된다면...


/system/bin/.user/.su의 유무를 직접 탐지한다거나, 커널이 바뀌었음을 탐지한다거나, 개발자 모드의 USB debugging을 체크한다거나 하는 등의 기묘한 방법으로 루팅을 막으려는 의도이니 그 앱을 안쓰거나 루팅을 안하거나 양자택일 하는 수 밖에 없다.






댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함