오늘은 apk 파일을 리패키징 하는 방법을 알아보자 먼저 apk_tool를 깔아야 한다.
https://bitbucket.org/iBotPeaches/apktool/downloads/
iBotPeaches / Apktool / Downloads — Bitbucket
For large uploads, we recommend using the API. Get instructions
bitbucket.org
그리고 디컴파일을 할 apk 파일을 준비한다.
다음과 같이 디컴파일 명령어를 내릴 수 있다.
apktool d 디컴파일할apk.apk
이렇게 하면 디컴파일 된 apk 파일이 폴더 형태로 출려된다.
디컴파일 된 apk 파일을 수정 할 수 있다.
디컴파일 된 파일은 smail 언어로 디컴파일 되어 있으므로, 코드 수정을 위해선 smail 언어에 대한 지식이 필요하다.
그리고 우린 폴더를 다시 apk 파일로 만드는 명령어를 알아야 한다.
apktool b 디컴파일폴더 -o 출력이름.apk
이런 명령어로 apk 파일로 다시 만들 수 있다. 이 과정을 리패키징이라고 하며 악의적인 용도로 코드, 파일을 수정하는 것 또한 포함되는 과정이다.
하지만 이 apk 파일을 그대로 안드로이드에 설치 할 수 없다.
이 apk 파일에 디지털 서명이 없다면 안드로이드에서는 이 apk 파일을 거부한다.
우리는 또 apk 파일에 디지털 서명을 써보자
먼저 keytool이 필요한데 자바가 있으며 자동으로 설치되니, 없다면 자바를 설치해 주자
https://www.java.com/ko/download/ie_manual.jsp?locale=ko
Windows용 Java 다운로드
www.java.com
그리고 keytool를 통해 키를 생성해 주자
keytool -genkey -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
이 명령어를 실행하면 기본적으로 서명 이름, 비밀번호 등 여러 정보를 작성 해주어야 한다
이 명령어는 기본 적인 키를 생성해 주는 예제다 이에 해설은 아래에 있다.
keytool -genkey -v -keystore 키저장소.keystore -keyalg 암호화_방식 -keysize 키_사이즈 -validity 유효기간 -alias 키이름
이제 생성된 키를 apk에 서명해 주자.
그러기 위해선 jarsigner가 필요한데 자바 깔면 자동으로 깔리는거다.
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.keystore YourApp.apk my-alias
이 명령어는 원하는 apk 파일에 디지털 서명을 해준다. 해설은 아래와 같다
jarsigner -verbose -sigalg 서명_알고리즘 -digestalg 암호화_방식 -keystore 키_저장소.keystore 서명하려는_apk.apk 서명_할_키
이렇게 하면 apk 파일은 안드로이드에 설치 할 수 있다!
이제 apk 파일을 안드로이드에 설치하는 방법은 간단하다
나는 NOX를 예시로 설치하는 명령어는 adb로 할 것이다.
adb란 안드로이드에서 원격으로 쉘을 실행하게 도와주는 도구다.
adb shell // 원격 쉘 접속
adb install 설치할apk.apk // apk 설치
솔직히 좀 쉬운듯 하다
'모바일' 카테고리의 다른 글
[NOOBHACK] APK 파일 분석하는 방법 (0) | 2022.10.07 |
---|---|
[NOOBHACK] apk 파일 이란? (1) | 2022.10.07 |
[NOOBHACK] 안드로이드 컴포넌트 (1) | 2022.10.05 |
[NOOBHACK] 안드로이드란? (0) | 2022.10.04 |