Unconfigured Ad Widget

Collapse

Announcement

Collapse
No announcement yet.

APKNEEDS - Simple wrapper to work APK's

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    APKNEEDS - Simple wrapper to work APK's

    Hi guys,

    i mainly use Linux for my every day needs and someday i wanted to decompile a prebuilt APK. There my search began and i have tried many tools out there but none had what i wanted/needed or worked like i pretended. So my solution was to do it myself.


    apkneeds is a simple wrapper in bash to decompile, compile and deodex APKs from KitKat to Lollipop. I find it pretty useful for my needs so i hope it can help some of you and that some can even contribute to it.


    I will make a quick walk throw, using a 5.1 rom from a s905 device as an example so that you guys can take a look.
    Click image for larger version

Name:	apkneeds.png
Views:	166
Size:	52.8 KB
ID:	558262


    1. I have started the wrapper, and placed the 'app', 'framework' and 'priv-app' folders from my rom on the 'place_here_for_deodex' folder that the wrapper will create on first run.
    2 .I select option '11' to start the deodex process (LL is API 22).
    Click image for larger version

Name:	Screenshot from 2016-02-29 23:09:26.png
Views:	151
Size:	25.4 KB
ID:	558263

    3. On completion, i grab the 'framework-res.apk' and the 'SystemUI.apk' and place them on the 'framework' folder to install them so that i can decompile some apks
    4. I will put 2 jar files and 2 apk file in the 'place_apk_jar_here_for_modding' folder so that i can work on them.
    5. Decompile
    Click image for larger version

Name:	Screenshot from 2016-02-29 23:37:19.png
Views:	161
Size:	67.1 KB
ID:	558264

    6. Now my decompiled APK will be in the 'working' folder under the a folder with the selected APK name and i can edit it as i please.
    7. Decompiling a JAR is basically the same process and outcome
    Click image for larger version

Name:	Screenshot from 2016-03-01 15:06:20.png
Views:	141
Size:	25.8 KB
ID:	558265

    8. Recompiling with ask you if you pretend to use the original META-INF and AndroidManifest.xml. As a rule of thumb you should always keep them unless you have edit the AndroidManifest.xml file. If you don't keep it the APK will automatically be sign with platform keys. The final APK will be in the 'out' folder, the folder with the decompile APK in 'working' will be kept.
    Click image for larger version

Name:	Screenshot from 2016-03-01 15:11:38.png
Views:	145
Size:	71.1 KB
ID:	558266


    9. You now can push/install you edited APK.

    You can grab the wrapper from here or you can use git to clone it
    Code:
    git clone https://bitbucket.org/Abdul_pt/apk_needs.git
    I hope it helps some of you, because it sure saves me some time.
    Enjoy
    Last edited by abdul_pt; 03-03-2016, 16:59.
    if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
    then mv $user.contact.up.post /.trash; set response($response.type = ignore);
    $user.up.post.ignore_in_future = true; fi;


    #2
    Nice!
    Everything is possible if we work together!
    ApkFreak
    https://www.paypal.com/donate?busine...rency_code=USD
    BItcoin Donate: 1K9Qh9CvxvpdkCANVU173Mh3WAjv3oMgQy

    Comment


      #3
      Perfect Work !
      Thanks for this ...

      Neomode

      Comment


        #4
        Thanks guys.


        Tapatalked

        if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
        then mv $user.contact.up.post /.trash; set response($response.type = ignore);
        $user.up.post.ignore_in_future = true; fi;

        Comment


          #5
          Updated the download link.

          I have push one more commit save you the trouble to check for updates.
          apkneeds will now auto-update itself if you are on master branch and have Git 1.8 installed.

          Redownload or do a git pull
          if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
          then mv $user.contact.up.post /.trash; set response($response.type = ignore);
          $user.up.post.ignore_in_future = true; fi;

          Comment

          Working...
          X