티스토리 뷰



< SQLite db파일에 접근하기 > 


SQLite로 생성한 local db 파일을 보기 위해선 
DDMS를 실행한 후 data/data/[해당 package 명]/database/.db로 찾아들어가라고들 말하죠. 


하지만 문제는! 
안드로이드 폰을 USB로 연결해서 테스트해보면 'data폴더가 텅 비어있는 것'을 발견할 수 있습니다 !!


하지만 그건 사실 비어있는게 아니라 해당 디렉토리에 접근하지 못하는겁니다. 
안드로이드 디바이스는 자체적으로 'data'디렉토리에 접근 할 수 없도록 막혀 있는데요, 
해당 디렉토리에 접근하기 위해서는 '접근 권한'이 필요합니다. 
지금부터 차근차근 따라오시면 금방 해결하실 수 있어요! 
(해당 문제는 adb로 테스트하면 발생하지 않습니다만, 앞으로 db파일을 까보는 일이 잦아질테니 이 작업을 한번 해주시면 좋아요! )


제가 앞으로 설명할 내용은
'테스트용 안드로이드 폰'을 가지신 분에게 권장합니다.   
본인이 사용중인 안드로이드 폰은 해당 작업을 하기 적절치 못합니다. 

 

 

 

 



1. Rooting 

: 개발을 목적으로 test용 안드로이드 디바이스를 가지고 계시다면, 해당 기기를 Rooting하시는게 여러모로 
도움이 될 때가 많습니다. 
Rooting이 뭐냐면, 한마디로 '슈퍼 권한'을 가지게 되는것을 뜻하는데요, 
우리가 data디렉토리에 접근하지 못했던 근본적인 이유도, 접근권한이 없었기 때문입니다. 
(adb로 실행할 경우는 자동으로 모든 권한을 다 가지게 되요)


Rooting은 여러가지 툴이 있지만, 
저는 'Kingo for windows (https://www.kingoapp.com/)'를 사용해서 루팅을 진행했습니다. 


Q) rooting이 된건지 어떻게 알 수 있죠?
: 다음 코드를 돌려보면 알 수 있습니다.
아래 "su"라는 권한 명령은 rooting된 디바이스에서만 실행할 수 있거든요. 


try
        {
            //관리자 권한 요청
            Runtime.getRuntime().exec("su");
            //루트
            Log.d("test""루팅 ok");
        }
        catch ( Exception ex)
        {
            //루트 아님
            Log.d("test""루팅 no");
        }
 
 
 

 



2. Root File Manager

: 다음으로 안드로이드 안에서 디렉토리에 접근할 수 있는 툴을 받아야 하는데요, 
역시 여러가지 있겠습니다만, 저는 무료인 'Root File Manager'라는 앱을 받아 진행해 보겠습니다. 


이 앱은 (당연하게도) rooting된 디바이스에서 유용한 앱이구요, 
이 앱을 통해 기기의 모든 디렉토리에 마음대로 접근할 수 있습니다.  
우리는 이 앱을 통해 '외부'에서도 db파일에 접근할 수 있도록 할겁니다. 


해당 앱을 통해 들어가보면
우리가 그토록 원하던 'data'디렉토리에 접근할 수 있다는 것을 알 수 있습니다! (감격 ㅠ.ㅠ)
하지만 우리가 원하는건 외부에서 접근가능하게 하는 것이므로, 권한을 수정해줘야합니다. 






권한을 수정하고 싶은 디렉토리를 길게 누르고 'Permissions'로 들어가면 위와같이 뜨는데요, 
저기서 Others에 대한 권한도 체크를 해준 후 Ok를 클릭!


다만 조금 귀찮은 건, 
data/data/[package 명]/database/.db 경로에 해당되는 모든 파일의 접근 권한을 수정해 줘야한다는 점입니다. (귀찮..)


그리고 하나하나 접근 권한을 바꿔주면 다음과 같이 
USB로 디바이스를 연결한 경우에도 data 디렉토리에도 접근할 수 있게 됩니다! 









 

 

 



3. db파일 상세보기
: db파일에 접근하는 것에서 끝낸다면 큰 의미가 없습니다. 
그 속에 어떤 data가 저장되어 있는지 눈으로 확인할 수 있어야겠죠? 


이 단계에서도 역시 여러가지 툴이 있지만, 
저는 'SQLPro for SQLite'라는 프로그램을 사용해보겠습니다. 
(Mac용 유료앱이라 해당 라이센스가 있어야만 사용하실 수 있습니다. 
Windows 운영체제를 사용하시는 분들은 더 많은 툴들이 있습니다.)


이제 꺼낸 db파일을 해당 프로그램으로 돌려보면 다음과 같이 data를 '저장, 삭제, 조회, 수정' 할 수 있습니다. 


이런 툴을 사용하면, 
미리 만들어놓은 db파일, 혹은 기관 등에서 제공되는 db파일을 DDMS를 통해 넣어서 실행해 볼수도 있겠죠?




이상이었습니다!




 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함