אנדרואיד היא מערכת הפעלה שמשתמשת בשפות תכנות רבות. השפות הנפוצות ביותר הן Java (או אנדרואיד Java אם תרצו), C, XML, Bash, וכן עוד כמה. ניתן לפרק יישומי אנדרואיד על ידי APKTool וכמה כלים דומים, והפלט שלהם הוא Smali. אני יודע שרבים מכם לא יסכימו איתי, אבל Smali היא שפה די מסובכת הרבה יותר מג'אווה.
ישנם שני כלים שיכולים להמיר את Smali בחזרה ל-Java: Dex2Jar ו-JAD. עם זאת, הם די קשים לשימוש, וצריכים קצת ניסיון כדי להשתמש בהם כראוי. למרבה המזל, מפתח XDA מוכר broodplank1337 יצרו תסריט bash פשוט, שעושה את כל העבודה עבורנו. סקריפט זה יכול לקבל את כל התלות הנדרשת, כמו גם לקבל את קוד ה-Java ישירות מה-APK. זה עובד על לינוקס בלבד, אבל אני די בטוח שניתן להשתמש בו במערכות שאינן דומות ל-UNIX כמו Windows עם Cygwin. המפתח ממליץ לשים את הקובץ ב-~/bin ולהפוך אותו לבר-הפעלה. הנחיות נוספות זמינות בשרשור.
לפעמים תסריטים יכולים לעשות את החיים הרבה יותר קלים. אם אתה מעוניין בפרויקט, עשה את דרכך אל חוט מקורי כדי לקבל מידע נוסף וללמוד כיצד להמיר קוד אסמבלר ל-Java.
הערה: יש להשתמש בכלים כמו זה למטרות חינוכיות. קוד "השאלה" מאפליקציות (בתשלום או בחינם) אינו מוסרי ואסור להתבצע. יש סיבה שהם מקור סגור. תזכור את זה.