2019-09-25

Linux CentOS에서 스마트폰 /data 폴더에 루팅 없이 접근해 목소리톡 데이터를 백업하게 된 경위

-1. 뻘짓을 하게 된 경위를 기록하였다. 결론은 4번 항목으로.



0. 목소리톡 앱에서 내부적으로 저장한 음성 파일들을 백업하고 싶어졌다. 루팅 없이.



1. 찾아보니 adb를 쓰면 된다기에 바로 리눅스 켰다.

$ yum install adb

(2013이 신경쓰이지만 일단 가자..)



2. USB와 폰을 연결시켰다. 근데 윈도우즈처럼 알아서 연결이 성립하지 않는다.

리눅스에서 ADB가 내 장치를 인식하게 만드려면 어떻게 해야 하죠?

이렇게 하면 된다고 한다.

스마트폰 설정에서 'USB 연결 시 디버그 모드를 활성화'시킨다.

$ lsusb

명령어로 장치가 어디에 연결되어있는지 확인한다.

(없는데?)

그래서 본체의 USB 포트를 갈아 끼워보았더니 세상에

폰에서 '이 컴퓨터에서 디버깅을 허용하시겠습니까?'라는 메시지가 뜬다.

아까 꽂았던 USB 포트가 죽어있었다!

모든 소프트웨어적 조작의 기반엔 완벽한 물리적 연결이 가정되어 있단걸

이럴 때 다시금 느끼곤 한다. 모든 것을 의심해야 한다...

내 폰을 연결시켰더니 다음과 같은 디바이스가 목록에 나타나기 시작했다.

(내 폰은 LG G6인데 어째서)

디바이스 아이디를 얻었다. 이제 adb로 돌아오게 되었다.

기본적인 아이디어는 이곳에서 시작했다.

adb shell을 통해 해당 패키지에 접근해 파일을 읽어와서

내 PC의 디렉토리에 저장하는 것이 주요 골자였다.



3. adb shell "run-as com.jkchat.votok ls -l"

실행 결과는 다음과 같았다.

(디버그가 안되네요.)

구글에서 'adb run-as package not debuggable'라고 검색해보았다.

결과 중 이러한 글을 찾을 수 있었다. 아마도 권한의 문제인 것 같다.

그래서 application is not debuggable일 땐 어떻게 할 수 있는지 검색해보니

이 정도가 한계인 것 같았다.


실패.

여기에서 apk까지 백업하는 기능은 흔히 Astro 파일관리자라던가 7zip같은 앱들이

인앱에서 제공하는 기능인 '앱 백업'의 그것이다.



즉, 결론은 아래와 같다.

애초에 app store에서 debuggable로 릴리즈된 앱이 아니라면

해당 방법을 통해 인앱 데이터를 추출해낼 수 없다.



뻘짓했다!!!



4. 그런데 그럴 필요가 없었다.

사용자가 접근 가능한 저장소(storage/emulated/0/Android/data/com.jkchat.votok/files/agreed)

에서 .8gp로 인코딩된 음성 파일들을 찾을 수 있었다.

난 뭘 한거지.

목소리톡을 백업할 땐 해당 경로를 이용하자.

스페셜 땡큐 : https://xr705.tistory.com/76


댓글 없음:

댓글 쓰기