Renaming the Package Name inside an APK

前端 未结 4 2056
星月不相逢
星月不相逢 2021-01-31 06:50

I have created an AIR app that is currently on the market. To update the app, obviously I must keep the same package name. My first version\'s were packaged usi

4条回答
  •  长发绾君心
    2021-01-31 07:11

    this was done on a pc. i have no idea how to do this on a mac.

    i don't recommend using this to remove the "air." from an air package name. If you do so, the user will not be prompted to download air on their device. the user will get an error message instead with no clue to the problem. of course you can use air captive runtime to solve this issue.

    http://bradwallacedesign.com/share/renameAPK.zip

    download and unzip my file (renameAPK.zip) to c:\renameAPK.

    required files:

    1. my file (renameAPK.zip) which contains the apkTool
    2. java jdk/jre
    3. android SDK
    4. notepad++ (or an equivalent text editor that can rename across multiple files)

    i made many bat files since i'm not sure how to combine them into one file. you will need to edit each one to change your path names and file names to work with your computer and your apk file.

    i numbered all the bats in the order that i use them. once a command line is open, i type the number of the bat file i want then hit the tab key to automatically finish the name of the bat file then hit enter to run that bat file.

    instructions:

    double click `openCmd.bat to open a command line pointing to the directory with all your files.

    0. run 0path.bat to set your path. (i can't remember now if the adobe air sdk is needed for this but i have it in my path. obviously, the JDK is needed and the android sdk for the jarsigner and zip align i think.)

    1. run 1decompileAPK.bat to have apkTool decompile your app into a folder called UNZIPPEDapk

    2. follow the instructions in 2editManifest & PackageName - Instructions (not a bat).txt to edit the manifest and package name using Notepad++ inside UNZIPPEDapk:

    edit AndroidManifest.xml:

    a. change package name from air.oldPackageName to newPackageName

    b. edit other needed entries:

    c. rename folder system inside "smali" folder so that it works with your new package name for example: if the old package name was: air/oldName then change the folders to match the new package name: air/newName

    use notepad++ (or any editor that can find and replace text over many files)


    d. ctrl+shift+f --- "Find in files"

      find:
    air/oldPackageName
      replace with:
    newPackageName
      where:
    all files in UNZIPPEDapk/smali
    

    (i think there were over 200 replacements)

    3. run 3buildDistFolder.bat to have apkTool build the new apk in the UNZIPPEDapk\Dist folder

    4. follow the instructions in 4getMissingFiles - instructions.txt to reinstate the 2 missing files in the new build:

    a. Two files were not built during 3buildDistFolder:

    3buildDistFolder.bat built the new apk in the \UNZIPPEDapk\dist folder but it failed to copy 2 files:

    (skipping hidden file 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF
    

    \AIR\extensions\com.adobe.mobile\META-INF\ANE\Android-ARM.classpath') (skipping hidden file 'C:\Users\computer\apkTool\UNZIPPEDapk\assets\META-INF \AIR\extensions\com.adobe.mobile\META-INF\ANE\Android-ARM.project')

    grab these 2 files from your original apk and drop them into your new apk in the correct folder

    b. copy yourApp.apk from DKTimer/Dist/ to root directory where your bat files are.

    5. run 5signAPK.bat to sign the apk.

    developer.android.com/guide/publishing/app-signing.html

    6. run 6verifySigned.bat to verify the signing worked properly

    7. run 7zipAlign.bat to align the apk file.

    developer.android.com/guide/developing/tools/zipalign.html


    You are finished at this point. Continue on if you want to test it on a device.

    8. run 8installAPK.bat to install the apk on a usb connected device.

    9. run 9remoteDebugger.bat if you want to use remote debugging.


    i hope this helps someone. let me know if i forgot to include something. also, if you know a better way to do this, please comment (such as how to combine this into 1 long pausing bat file...)

提交回复
热议问题