본문 바로가기
IT & 전자기기/소프트웨어

안드로이드 ADB로 모든 앱을 apk로 추출해보자

by 카루 (Rolling Ress) 2022. 11. 13.
반응형
 

환영합니다, Rolling Ress의 카루입니다.

요즘에는 ADB를 자주 사용합니다. 파일 이동할 때도 느려터진 MTP보다 adb pull / push로 이동하는 게 훨씬 빠르더라고요. 이걸 얼마 전에 알았습니다. 예전에 커스텀롬 옮길 때밖에 써보질 않았는데, 앞으로는 모든 백업과 복원을 adb를 이용하지 않을지..

여튼, 오늘은 adb를 통해 apk 파일을 추출하는 방법을 알아보겠습니다. 저처럼 휴대폰 초기화를 자주 돌리시는 분들은 매번 플레이스토어에 들어가 앱을 다운 받는 것도 일이죠. 그래서 한번에 싹 앱을 뽑아볼 겁니다. 이러면 나중에 adb install을 통해서 한꺼번에 apk 파일을 설치할 수 있어요. 홈 화면에 바로가기가 남지 않고 깔끔하게 설치된다는 것도 하나의 장점.

개발자 모드가 활성화 되었고 adb 커맨드도 정상적으로 사용할 수 있다는 전제 하에 시작합니다.

C:\>adb shell

명령 프롬프트에서 위 커맨드를 이용하여 스마트폰 내부에 접속합니다.

여기서 루팅이 되어 있다면 su 커맨드가 먹힐 거고, 그렇지 않다면 오류가 뜰 겁니다. 크게 중요한 부분은 아니니 넘어가죠. 아래 명령어를 입력하면 모든 패키지를 불러옵니다. $ 또는 # 뒤에서부터 입력하는 거 잊지 마세요.

phone:/ $ pm list packages -f

그럼 뭐가 쭉 뜰 겁니다. 이 결과를 모두 복사해서 텍스트 편집기에 붙여넣으세요. 그리고 adb 쉘은 종료합니다.

phone:/ $ exit

이렇게 뭐가 엄청 뜰 겁니다. 여기서 중요한 건 시스템 앱을 걸러내는 겁니다. 아래 네 개로 시작하는 것들은 시스템 앱이니 모두 지워주세요.

/vendor

/system

/system_ext

/product

추가로, com.google.android 의 일부도 시스템 앱에 포함되니 목록에서 삭제하는 게 좋습니다. 그리고 .apk 뒤에 붙는 등호, 그리고 그 뒤의 수식어구는 필요 없으니 지워주시면 됩니다.

$adb pull <apk 경로> <추출할 이름>

위 명령어를 사용하여 apk 파일을 추출할 수 있습니다.

정규표현식을 적절히 사용하여 명령어를 만들고, 이걸 배치파일로 저장해봅시다.

이제 이걸 실행해보겠습니다.

하나씩 진행이 되기 시작합니다.

그러면 이렇게 모든 파일이 apk로 불러와집니다. 나중에 adb install 커맨드를 통해 한번에 설치할 수 있습니다.

반응형


같이 보면 좋은 글


댓글