In my business, I sometimes want to take a look at the competitor's application ~~ snooping ~~ and see the source code, so I will leave it as a memorandum.
#Check if the connection between the PC and device is established
$ adb devices
#Search for the target package
$ adb shell pm list packages -f | grep [Keywords to download]
The keywords to be downloaded are usually caught by entering the company name or the name of the application.
#Example
$ adb shell pm list packages -f | grep yamachita0109
package:/data/app/com.yamachita0109.voice-Q6HZbU2pgLu4T3FCQg74kg==/base.apk=com.yamachita0109.voice
Decomposes the standard output value.
Name | value |
---|---|
APK save destination path | /data/app/com.yamachita0109.voice-Q6HZbU2pgLu4T3FCQg74kg==/ |
APK file name | base.apk |
Application ID | com.yamachita0109.voice |
download.
#Specify the APK save destination path
$ adb pull [APK save destination path]
#Example
$ adb pull /data/app/com.yamachita0109.voice-Q6HZbU2pgLu4T3FCQg74kg==/
/data/app/com.yamachita0109.voice-Q6HZbU2pgLu4T3FCQg74kg==/: 1 file pulled. 31.4 MB/s (9086342 bytes in 0.276s)
#APK file has been downloaded
$ ls com.yamachita0109.voice-Q6HZbU2pgLu4T3FCQg74kg\=\=/
base.apk lib
Use jadx.
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
JDK 8 or higher must be installed:
So be careful.
Finally decompiled.
#OK through Path
$ build/jadx/bin/jadx --log-level error [APK file path]
A folder is created with the APK file name. Since the source code is included in it, you can refer to it ~~ snooping ~~.
"Sweet !! The folklore of martial arts begins with imitation!"
It is a quote of Akiame, a character of Kenichi, the strongest disciple in history.
"All originality begins with imitation"
It is a quote from Akira Takata, the founder of Japanet Takata.