Content
- Updated FAQ on 4PDA (in Russian)
- Quick editing
- Full editing - decompilation and assembly
- Translating apps
- Antisplit function
- Creating a custom signature
- File Manager
- Various
- MPatcher
Quick editing
What is quick editing?
This is editing some of the core application data without the need for decompiling and rebuilding.
What is quick editing used for?
- to view information about the app (apk), its permissions, and preferred installation location (not to be confused with the actual installation location);
- to change the app name;
- to change the app package name (clone the app);
- to replace both vector (automatically generated), adaptive, and regular raster icons in applications;
- to set the preferred app installation location;
- to change the minimum or target SDK version;
- to adapt the app for Android TV;
- to remove it from the Manifest: `android:isSplitRequired, android:debuggable, android:testOnly`.
Why do I need the "Permissions" item?
To view the app's permissions, as well as to enable or disable them.
Can I convert images to vector?
Yes.
PNG, Jpeg, Webp, and Svg formats are supported.
The conversion takes place using the {old file name}type _vector.xml
When converting, you can improve or degrade the image quality.
Is it possible to convert an svg image to VectorDrawable?
Yes.
Available in the preview of SVG/VectorDrawable polygons (uncompiled)
Note: the svg must have a simple and adequate structure, otherwise the parser may not process it properly, and you will have to normalize it manually to make it work properly.
Is it possible to convert bitmap images to VectorDrawable?
Yes.
This is not a panacea. It may have a large error in tracing-it depends on the complexity of the source image geometry.
How do I replace the app icon?

1. Prepare the necessary icon, gelatinally in png format and size, preferably, no more than 192x192px.
2. Select the required application → Quick Edit.
3. In the upper-left corner, you can see the icon of the installed app and its name.
4. Tap on the icon itself and select the previously prepared icon.
5. If necessary, check the necessary settings boxes: "replace adaptive icon" " high-quality icon (larger size)
6. Also select the signature file if you haven't installed it before.
7. Click "Save".

The finished file will be in the same folder, next to the selected application with the mod label at the end.
How do I extract the app icon?

1. Select the required application → Quick Edit.
2. Long tap on the icon.

The extracted konka will be in the same folder, next to the selected application.
How do I change the minimum or target sdk version?

1. Select the required application → Quick Edit.
2. Make the necessary changes in the "Minimum SDK Version" or "Target SDK Version" settings.
3. Click "Save".

The finished file will be in the same folder, next to the selected application with the mod label at the end.
How do I change the app name?

1. Select the required application → Quick Edit.
2. Next, change the name of the desired application to the required one.
3. Select the signature file if you haven't installed it before.
4. Click "Save".

The finished file will be placed next to the selected application with mod marked at the end.
Why can't I change the "App Name"? (The item is inactive.)
Probably because the minimum sdk version of the app is higher than your system version. Under these conditions, editing is restricted.
First, you need to downgrade the minimum version of the sdk, and then edit everything else.
How do I change the app package name?

1. Select the required application → "Quick Edit".
2. Next, change the package name.
3. Select the signature file if you haven't installed it before.
4. Click "Save".

The finished file will be placed next to the selected application with mod marked at the end.
How to make an apk clone in this app?

1. Select the required application → "Quick Edit".
2. Then change the package name, for example, by adding or removing the last letters in the name.
3. Select the signature file if you haven't installed it before.
4. Click "Save".

The finished file will be placed next to the selected application with mod marked at the end.
How do I clone an app during quick editing?
The program changes the following parameters during quick editing: AndroidManifest.xml and resources.arsc.
How do I adapt the app for Android TV?

1. Select the required application → "Quick Edit".
2. Next, check the box "Adapt for Android TV.
3. Select the signature file if you haven't installed it before.
4. Click "Save".

The finished file will be placed next to the selected application with mod marked at the end. The app icon is used as a banner.
What should I do if the app doesn't install after a quick edit?
Check if you just didn't sign the package?
In quick edit, select a signature. By default, select "don't sign" if you haven't used the signature before.
Full editing - decompilation and assembly
What is decompilation and what is it used for?
decompile arsc+dex-translates binary code into a human-readable format. Required for editing application resources (resources.arsc) and Smali assembler (code). And also for functions that require this decompilation - for accessing information, applying patches, translating...

Recompilation requires the presence of aapt's binaries. The installation request appears when the app is first launched. If you have not done so, the download is done in "Settings" Build and Decompile "Replace Tools" Download for ... "

How do I decompile the app?

1. Select the required app.
2. Tap on it.
3. A pop-up menu opens.
4. Select "Decompile".
5. We mark the items that need to be decompiled:

- "Decompile resources"
- "Decompile classes.dex" or "Decompile all'*. dex ' files."
  (The item "all *. dex" is responsible for dexes in nested folders: for example, in assets, mthook, etc.)
- And also, if necessary, "Decompiling additional resources" with a choice of where to decompile.

After successful decompilation, there will be an audio and dialog notification, if it was previously enabled in the Settings.
How do I compile the app back?

1. Inside the project, click on the "Build project" label above the explorer window.
2. In the build window, select the resource build tool-aapt or aapt2.
3. You can also specify automatic signing, if necessary.

The log is displayed in real time. You can track stages, comments, and errors during the build process.
Upon completion, the log will stop (this will be visible).
After successful compilation, there will be an audio and dialog notification, if it was previously enabled in the Settings.
At the bottom, you will also be prompted to install the built app immediately.
Where is the app saved after being built?
To the folder with the disassembled app. In the project root (next to apktool. json)
Is it possible to decompile multiple files simultaneously?
Yes, but it is better to decompile several in a row, because if you decompile simultaneously, you may not have enough memory.
How to do it?
Select several files and long-press to open the menu.
Attention! This works for files of the same type. If something other than apk is selected, then the menu will not contain any items.
How do I change the folder where apks will be saved?

1. Settings → "Build and Decompile" → "Set output directory of installed applications"
2. Go to the desired folder, tap on the line "path" - set the output directory.
3. You can also set the output folder directly in the file manager.

What is the "Output directory of installed applications" item?
This is the directory where APKs will be exported/extracted for further work from the Applications menu.
How do I replace resources in the ".apk " file?
First you need to decompile, and then copy/paste files and build.
What should I do if the app doesn't build, although everything was done without errors, or I didn't change anything in the apk at all, but just recompiled?
Switch the aapt version.
View the log for the Warning event level.
In general, look at the log – the reason should be indicated there.
What is the compatibility with Apktool projects?
Apktool M allows you to build projects that are parsed through the regular Apktool.
Before building, Apktool M converts .yml in .json.
You can track information about the process by using the log.
Can Apktool M work with system applications?
Yes, it is possible.
How to do it?
Before working with such apks, you need to import apk frameworks using the item in the context menu for this apk. Import is performed on all such apks.

Base path: /system/framework/..

They can also be located in/system/vendor / framework, etc. in adjacent directories. If these directories exist (a rare occurrence).
Example of frameworks:

Then decompile and compile as a regular apk. To save the original META-INF and manifest – enable the "Match to original" radio button in the decompilation settings.

Explanation of the points in the "Build and decompile" section
Output folder
The path where installed applications will be exported/extracted from the "Applications" tab.
Use aapt2
Adds the second version of the tool to the aapt version selection item before building.
Debugging information

When building, debugging data is stored in Smali files, such as`.line, .param`, and so on.

Note:
This data is required solely for debugging the application in debuggable mode. And also for narrowly focused debugging of Smali crashes in Logcat (a rare occurrence, it can help as an anchor to the line that causes the crash). They don't affect code execution. This data can also help when editing Smali assembler as reference points and the like (for modelers).
Debugging mode
Writes `<application />` the attribute value in the manifest in the tag `android:debuggable` to `true`. Notifies the system that it is a debug application. Allows you to extend access to logging of this application. Interaction with the functionality of this function is possible only with the help of special tools (such as Android Studio, as well as debugging at the ADB level, etc.). This option does not apply to Logcat - the number of debug entries in the system log will not change if this parameter is changed.

To specify such an application as the current one for debugging, select it in the "System Settings" For developers " Debugging Application "(the paths may differ).

Full
During build, it outputs the final status of each of their files to the log after it is compiled. Don't enable it if you don't need to.
Matching the original
Allows you to save the original META-INF and manifest hash by respecting the original resource hashes.
This mode allows you to edit only Smali – if you try to build the edited file in res/..., it will be deleted in the final apk, because it does not match the original hash (modified).

This question needs to be clarified.

Analysis of all Smalisedit
Accelerates file analysis in Smali.
Add "APKTOOL_DUMMY"

By default, the resource IDs inside resources.arsc are set in arithmetic progression. In some cases, it may be broken – some places inside the value types may not be filled in (they are unoccupied).

These places are set from the APKTOOL_DUMMY stub to restore the integrity of the progression. These lines are not used by anyone and do not affect anything.

A small note:

If you delete a resource object from res/values/public.xml, then during the build, it will try to find such a free space and set its ID in it. If there are no available places, it will be added at the end of the list of items in its category. It is not recommended to do this with object IDs that are specified in Smali – this will cause a crash, because the resource specified by ID was moved (it no longer exists as such).

Deleting it public.xml this will force Apktool to create a progression from scratch – then APKTOOL_DUMMY will not be installed anywhere, because there are no free spaces between the starting and closing ID.

The need for APKTOOL_DUMMY is determined solely by the user. This may also be required if the decompiled project has a specif. structure among IDs (in particular, due to custom attributes and / or obfuscation).

Format HTML
Contents of all files .html and. htm (?) it will be formatted according to the XML syntax. This may disrupt the output display of the HTML page. It is installed only if necessary.
Delete the "build"folder

During the build, the DEX and ARSC files are cached in the build folder. If you didn't change the resources after the previous build and re – built the apk,. arsc will not be created again, but will be picked up from the cached instance, because its hash is identical (not modified). This also applies to Smali (DEX files). Speeds up the apk build process by skipping recompilation.

Deleting a folder is accompanied only by freeing up space. After that, during the next build,. dex and. arsc will be re-created "from scratch" and the folder will be recreated. Activating this option allows you to automatically delete a folder after a successful build. Activate it if desired.

All to the output directory
All successfully compiled apks will be automatically migrated to the above output directory.
Managing frameworks
Allows you to manage frames imported from the outside. The reset button clears the list and the files themselves locally, and also restores res-framework. apk (ID 1) from Apktool M.
Translating apps
How many languages are supported for translation?
More than 100 languages.
What options are available in Yandex. Translate?
- Automatic translation of selected strings in resources (strings, arrays, plurals) and smali,;
- Manual translation in resources (strings, arrays, plurals) and smali;
- Correction of the translation;
- Online translation with a choice of several translation services;
- Offline translation;
- Dictionary support;
- Creating your own dictionaries from an existing translation;
- Support for MT Manager dictionaries;
- Combining languages.
How many online translation services are available in the app?
Three: Yandex, Google, Bing.
I can't find the app's translation function. How to enable Yandex. Translate and translate the app (strings.xml) in Russian?
This feature is only available when the app is decompiled.

1. Decompile the resources of the desired apk.
2. Go to the folder with the decompiled files.
3. Open the file manager menu (it opens by clicking on the address bar) and select"Translator".

How do I translate an app automatically?

1. Decompile the resources of the desired apk.
2. Go to the folder with decompiled files.
3. Open the file manager menu (it opens by clicking on the address bar) and select the "Translator" item, then click on the three dots at the top right and select the "Auto-translation" item.
4. In the menu that opens, select the desired translation service, for example, Yandex.
5. In the "Source language" item, you can leave the "Define language" automatic selection of the final language - select the desired one. By default, the language installed on your system is suggested.
6. At the bottom, check the necessary boxes "Merge if exists" or "Save only translated strings"
7. Select the necessary lines and select them.
8. Click "Translate" To translate strings in res/values/strings.
9. After completing the transfer, click again on the three dots at the top right and select "Save"
10. We are putting together our project (app).

How do I translate an app in smali automatically?

1. Decompile the desired apk.
2. Go to the folder with decompiled files.
3. Open the file manager menu (it opens by clicking on the address bar) and select "smali translation", then click on the three dots at the top right and select "Auto-translation".
4. In the menu that opens, select the desired translation service, for example, Yandex.
5. In the "Source language" item, you can leave the "Define language" automatic selection of the final language - select the desired one. By default, the language installed on your system is suggested.
6. Select the necessary lines and select them.
7. At the bottom, check the necessary boxes "Merge if exists" or "Save only translated strings"
8. Click"Translate"
9. After completing the transfer, click again on the three dots at the top right and select"Save".
10. We are putting together our project (app).

In "Automatic translation" there is a function "correct translation". What is it used for?
To skip lines that you don't need to translate: `true, false, %1$d/%2$d`, now also includes vector graphics, references, and so on, as well as corrects some lines after auto-translation.
How do I translate an app manually?

1. Decompile the desired apk.
2. Go to the folder with decompiled files.
3. Open the file manager menu (it opens by clicking on the address bar) and select "smali translation" and manually edit the necessary lines.
4. At the top right, click on the three dots and select"Save"
5. We are putting together our project (app).

How can I combine languages if the default strings of the translated app don't contain the necessary ones, but others do?
After the necessary translation of the application, go to the translator menu, select "add, add from" and add the missing lines from another locale. Of course, then we translate them, if necessary.
What dictionary format is supported in Apktool M?
*. amd and *. mtd
How do I create my own dictionary from a translated file?
Open Yandex. Translate, select "create dictionary" from the menu, select the source (untranslated strings) and target resource (your translation file) in the project folder, and save it.
How do I use the saved dictionary?
The next time you make a transfer, it will appear in the translation service selection.
Where can I get a ready-made dictionary for offline translation?
In the MT Manager topic
Copy it to the "Output directory/dictionary" (by default it is "Apktool_M/dictionary" in the internal memory), or simply import it by clicking on the dictionary file in the program and add it.
After that, the dictionary will appear in Yandex. Translate, in auto-translation services.
After the transfer, the project is not collected. Returns an error.

1. Delete invalid lines that are usually specified in the build error log.
2. To build, use aapt1 if it is not built in aapt2 and there are no errors about invalid translation strings.
3. The app may be protected by signature.

Antisplit function
What is an Antisplit?
This is merging the Android App Bundle (split) into one installation file, as well as installing and extracting such files.
How to build an apk from splits? Where is this option located?

1. In the context menu "Antisplit". Called with a short tap on apks/xapk.
2. In the context menu "Antisplit". Called by tapping on a group of pre-selected / selected apks.

Next, select the necessary compilation tool: aapt2 or aapt, if the application is not built first.
Can I build an apk from the installed split?
Yes.
We select the installed application in the list of applications and with a long tap call up the "Antisplit" item.
Where is the collected file located?
The apk is located in the default working folder: internal_memory/Apktool_M.
At the end of the build, there will be an "Install" button, but if you hold it down for a long time, the folder with the file will open.
Step-by-step instructions on how to convert Apks to Apks using Apktool M.

1. Select the desired file (Apks) and click on it.
2. Then select "Antisplit" from the menu that appears.
3. Then click on the "Antisplit" button again (first make sure that all files, i.e. all checkboxes, have been enabled).
4. After that, select the desired tool (aapt2 or aapt if the application is not compiled) and click the "Select" button.
5. Wait for the entire process to complete.

Now your Apks has turned into an Apk, and now you can work with it as with a regular Apk file.
Creating a custom signature
How do I create my signature?

Go to "Settings" → "Signature", select "Create key".

- In the signature settings, you can set the name of the RSA / SF files, as well as the name of the creator for the V1 signature
In the menu that opens, fill in the following lines::

Signature algorithm:
Difference in the length of the certificate hash (after signing the apk). SHA256withRSA is optimal. We leave it by default. MD5 is considered insecure. Detailed differences can be found on the Internet.

Type:
Specifies the storage type. By default, JKS (can also be known as .keystore). Detailed differences can be found on the Internet.

Path to the key:
Output storage location for the key. The file name is entered automatically, and you can change it at the end if you want.

Alias:
Alias for the key. Specified during import/operation.

Storage and key password:
Password to protect the storage and the key itself before importing/using it. For convenience, you can make them identical.

Key Size:
Specifies the number of bits (length) of the key signature to read. The default value is 2048. Increasing the size increases its cryptographic strength, but it is more difficult to analyze (slower). Set using an informative geometric progression (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, and so on)

Validity period:
The time from the creation date when the key's authenticity expires. Specified in years.

The following information is required to inform you about the signature owner. Specify as desired:
Name, position, organization, city, region/state, country.

The "Save" button completes the creation and places the key store in the previously specified path.

The "Create and use" button additionally imports the final file in place of the user signature.

Is it possible to convert jks/keystore repositories to pk8+x509.pem?
Yes, it is possible.
File Manager
Does Apktool have a full-fledged file manager?
Yes.
How do I access the file manager menu?
The menu opens by clicking on the address bar.
What features does it have?
- deleting files;
- copying it;
- renaming, including batch renaming;
- creating a list of files;
- archiving;
- file and folder properties;
- full-fledged search;
- bookmarks;
- history of last opened files;
- the apk/apks file properties dialog is a separate topic;
- preview of vector xml/svg files, as well as converting images to a vector;
- preview ttf/otf fonts;
- batch operations with selected apks or images, by long pressing;
- in project folders, in the properties of resource files, there is their ID from public.xml (if any).
How do I open the context menu when viewing files?
Long tap on the file itself.
What items are available in the context menu?
- Send the file (s)...
- Open in...
- Remove.
- Rename it.
- Squeeze.
- Extract here.
- Extract to "File Name"
- View the content.
- Features.
- Copy.
- Cut.
- MPatcher.
- Choose.
- Select all.
- Copy the name.
- Copy the path.
- Add to bookmarks.
How do I select a file / folder?

1. Long press on the file / folder itself or on the icon.
2. After selecting a file / folder by long-clicking on the icon, you can long-click on the icon of another file, select files "from and to".
3. You can also quickly select everything by long-pressing the "back" icon (..)

How do I rename files?
By long-clicking on the file, the rename dialog appears.
In the same dialog, by long-clicking on "auto", you can rename it to automatic mode using templates.
How can I edit a file using an external editor directly from the app?
Long press on file → in the pop-up context menu, select "Open in"...
How do I create an archive of files?
Select "Compress" from the context menu. When archiving files, you can add them to an existing archive.
Can I delete or replace files/folders in archives (including APKs) without disassembling/assembling them?
Yes.

1. Long tap on the/.apk archive and select "View content"from the pop-up menu.
2. Use a long tap to select what you need to delete or extract.

After the necessary manipulations, the file will be automatically reassembled and signed.
The original file is saved next to the extension .bak.
How can I replace a file or folder with an already edited one in a disassembled APK?
Long tap on the desired file and select "Extract here" in the context menu...
If you want, for example, to replace an image in the drawable folder, you must add the res folder with the replacement to the apk, which contains the drawable folder, which in turn contains the image.

In other words, it is important to preserve the directory structure!

After the necessary actions, we will archive the file with the apk extension back.
We sign it.
Does Apktool M have a full-fledged search engine?
Yes.
There are both file search, file names, text search in files, and installed applications.
Manual address entry is triggered by long-pressing the address.
Does the app have regular expression search?
Yes.
How do I start using search?
Open the file manager menu by clicking on the address.
I didn't find a folder search. Only in the file.
You do not need to hold the folder itself, but go to the very folder where the search will be, then click on the "arrow or path to the folder/file" and the search menu will appear.
Are all search results saved and how do I find them?
Yes. The search history is saved.
An item appears in the Explorer menu (click on the address at the top), or by long-pressing the search icon in the bottom panel, if it is enabled there.
You can also search in the search results themselves.
If you didn't search for anything, then this item is missing.
Various
Does Apktool have a clone function?
Yes.
This requires a full decompilation of the application.
How else can I clone an app?
Use the patch in the MPatcher program.
How can I remove unnecessary languages from the app, except for ru, eng?
In the context menu, select the item " Optimize (aapt2).
In the settings of this item, check the box "Set configuration" and specify the language that you need to leave, in this case it is "ru, ru-rRU".
How do I remove all languages except Russian, Ukrainian, and English?
Similar to deleting all languages except Russian and English.
In the "Set configuration" item, specify the languages that you need to leave, for example, "ru, ru-rRU, uk, ru-rUA, uk-rRU".
How can I view the list of installed apps?
At the top right - the "Applications" tab.
How do I edit the entire Manifest in the app?
The entire manifest is edited when resources are decompiled.
Is there a built-in value converter?

Yes.

How do I get there?
Home screen → Three hours in the upper right corner → The converter.
What values are supported?
- Text ↔ SHA-384
- Text ↔ SHA-224
- Text ↔ SHA-256
- Text ↔ SHA-512
- Текст SHA-1 text
- Text ↔ MD5
- Text ↔ URL encoding
- Text ↔ Unicode
- ↔ Base64 text
- Text ↔ Array (US-ASCII)
- Text ↔ Array (UTF-16LE)
- Text ↔ Array (UTF-16BE)
- Text ↔ Array (UTF-8)
- Text ↔ Array (CP1251)
- Text ↔ Array (ISO-8859-1)
- Decimal ↔ Octal
- Decimal ↔ Binary
- ↔ Smali color
- Decimal ↔ Hex (0x0)
- Decimal ↔ Hex (0x00000000)
- Decimal ↔ Hex
- Float ↔ Binary
- Float ↔ Octal
- Float ↔ Hex
- Float ↔ Hex (0x0)
- Float ↔ Hex (0x00000000)

Please note!

All ciphers that are backward compatible can be converted back. This is done in the lower input window.
How do I update Apktool M?
Home screen → Three hours in the upper-right corner → "Settings" → "Program Update" enable "Check for updates".
Below, you can select the item "Update check frequency".
How do I download the update?
From Apktool M itself, or download via the browser.
Where is the update file saved?
To the internal memory in the "Download" folder.
Can I disable update checking?
Yes, you can.

Home screen → Three hours in the upper-right corner → "Settings" → "About the app" → "Disable update checking".

How can I restore from a backup? My restore item is not active...
To recover, you must first save your account.
The backup file must be located at the path: "/internal_memory/Apktool_M. backup", if it is not present, the item is not active.
MPatcher
What is MPatcher?
It is an application for running, creating, importing, exporting scripts and patches written in Shell, integrated in Apktool M.
Is there a separate topic on the Forum?
Yes: MPatcher
How do I call MPatcher?
Long tap on the file and select "MPatcher"in the context menu that opens.
This will specify the target apk.

To select the target project-above "Build" there is a drop-down menu, there is an item MPatcher.