this post was submitted on 09 Oct 2023
66 points (100.0% liked)

Android

17278 readers
17 users here now

The new home of /r/Android on Lemmy and the Fediverse!

Android news, reviews, tips, and discussions about rooting, tutorials, and apps.

🔗Universal Link: !android@lemdro.id


💡Content Philosophy:

Content which benefits the community (news, rumours, and discussions) is generally allowed and is valued over content which benefits only the individual (technical questions, help buying/selling, rants, self-promotion, etc.) which will be removed if it's in violation of the rules.


Support, technical, or app related questions belong in: !askandroid@lemdro.id

For fresh communities, lemmy apps, and instance updates: !lemdroid@lemdro.id

💬Matrix Chat

💬Telegram channels / chats

📰Our communities below


Rules

  1. Stay on topic: All posts should be related to the Android OS or ecosystem.

  2. No support questions, recommendation requests, rants, or bug reports: Posts must benefit the community rather than the individual. Please post to !askandroid@lemdro.id.

  3. Describe images/videos, no memes: Please include a text description when sharing images or videos. Post memes to !androidmemes@lemdro.id.

  4. No self-promotion spam: Active community members can post their apps if they answer any questions in the comments. Please do not post links to your own website, YouTube, blog content, or communities.

  5. No reposts or rehosted content: Share only the original source of an article, unless it's not available in English or requires logging in (like Twitter). Avoid reposting the same topic from other sources.

  6. No editorializing titles: You can add the author or website's name if helpful, but keep article titles unchanged.

  7. No piracy or unverified APKs: Do not share links or direct people to pirated content or unverified APKs, which may contain malicious code.

  8. No unauthorized polls, bots, or giveaways: Do not create polls, use bots, or organize giveaways without first contacting mods for approval.

  9. No offensive or low-effort content: Don't post offensive or unhelpful content. Keep it civil and friendly!

  10. No affiliate links: Posting affiliate links is not allowed.

Quick Links

Our Communities

Lemmy App List

Chat and More


founded 1 year ago
MODERATORS
66
Apktool v2.9.0 Released (connortumbleson.com)
submitted 1 year ago* (last edited 1 year ago) by ijeff@lemdro.id to c/android@lemdro.id
 

Apktool is a tool for reverse engineering Android apps.

v2.9.0 has been released with Android 14 support, aapt2 as a default and a new resource modes flag.

Via t.me/mishaalandroidnews

you are viewing a single comment's thread
view the rest of the comments
[–] spicycape@lemmy.ca 7 points 1 year ago (1 children)

Well I'm not acquainted with Apk tool, but I understand a bit about reverse engineering, so I went on their github page to read about it.

Essentially, an android application is packaged under the .APK extension which lets you install and run the application on your phone. This is akin to a software with the .exe extension on windows. An .apk or .exe is a bunch of compiled code and ressources, this means that in this form, the code is mostly a bunch of mumbo jumbo that no one can understand or make edit to.

By reverse engineering, you transform the .apk to it's initial state before compilation, the code is now organised, readable, and editable. This allows you to understand what is going on under hood and add new code and functionnalities. If you decide to edit the code, you can package/compile this extended application into a new .APK and enjoy additionnal features in the application.

Note that reverse engineering will not get you an exact copy of the code and file structures the original developper created, it is (in general) an approximation. Depending on the decompiler, you can lose variables names, function names...etc, but the code will work fine.

For an example

If the original developper had this function. private String getAge(String userId) { String age = this.users.get(userId); return age; }

Decompiling might get you :

private String getAge(String var1) { String var2 = this.var3.get(var1); return var2; }

You get the code, but it's harder to understand than if you had the original code. So reverse engineering / decompiling is useful in some use cases, but not always a miracle.

[–] Aux@lemmy.world 3 points 1 year ago

Apktool doesn't decompile the code back into Java, it simply unpacks APK files. You then need a separate decompiler to check the source code.