SAP (Split APKs Packer) v6.9.10 - Printable Version +- AiOwares (https://www.aiowares.com) +-- Forum: Software & Applications (https://www.aiowares.com/forumdisplay.php?fid=6) +--- Forum: Mobile Software (https://www.aiowares.com/forumdisplay.php?fid=13) +---- Forum: Android (https://www.aiowares.com/forumdisplay.php?fid=41) +---- Thread: SAP (Split APKs Packer) v6.9.10 (/showthread.php?tid=3222) |
SAP (Split APKs Packer) v6.9.10 - UpGrade - 11-16-2022 SAP (Split APKs Packer) v6.9.10 Requirements: JRE/OpenJDK 1.8 or above | GLIBC 2.31+ on Linux | 64-bit OS Overview: A simple and fast tool to transform Android App Bundles into single Android Packages. HOW IT WORKS SAP uses Apktool to decode the resources of the files included in the bundle to be processed. Then it merges all these files into the base package folder before adjusting and correcting them. Apktool is used to build the single package, Uber-APK-Signer for zipAlign/sign processes. SAP doesn’t work on dynamic features but configuration modules only. INFO: SAP is a portable application ; all files present in its folder are necessary. Two versions are available: - for Windows OS - for Linux based OS. VERSION: Split APKs Packer v6.9.10 Designed and coded by Kirlif’ Compiled on 13/November/2022 REQUIREMENTS: The two fonts provided must be installed. JRE/OpenJDK 1.8 or above ; Java binaries folder must be present in the system PATH. GLIBC 2.31+ required on Linux USAGE: Two ways to create a project: - with « Directory » button to choose the folder that contains the split packages to merge. SAP will work inside. - with « Archive » button to choose a ZIP archive (.apks, .xapk, .zip, .apkm). SAP will extract its content in a new folder next to it (archive_name_SAP_Project) and work inside. SAP check the validity of the bundle then « Select » and « Start » buttons are enabled. If build succeeded the resulting APK will be found in the « build » folder inside the project directory with the log file. FEATURES: « Select » button allows to customize the project by selecting the wanted split packages: - multi-selection and selection of several ranges of items are possible with CTRL key and mouse. « Workers » spinner defines the number of concurrent threads to be created for decodings: - the maximum number is defined by the number of CPUs. « Sign » checkbox allows the resulting APK to be zip-aligned and signed: - a debug key is used by default. A custom key can be imported thanks to « Keystore » button. An obfuscated config file is created that contains the parent directory of the last project and the few settings used: - it is updated when a custom keystore is imported and when the app is exited. A log file is created inside the project folder: - it is moved into « build » folder at the end of the successful process. « Start » button will launch the process: - split packages decoding. During decoding « Start » button is changed to « Cancel » that allows to abandon the project. - SAP works on decoded files - finally it try to build a single package. SAP tool allows to merge new split packages with an already SAP repacked APK. MANUAL MODE: If build failed, SAP switch to « Manual Mode »: - the « Start » button is changed to « Build » and allows to retry after manual changes. - Most of fails are due to not well-formed xml files. Apktool warnings in the log file will help to create fies). The failed project can be abandoned and reopened later. If the project consists of a single file which is already a SAP repacking, it is automatically decoded. SAP then switches to « Manual Mode » to allow modding. CREDITS: Connor Tumbleson & Ryszard Wisniewski for Apktool: https://github.com/iBotPeaches/Apktool Patrick Favre-Bulle for Uber Apk Signer: https://github.com/patrickfav/uber-apk-signer Souradip Mookerjee for unapkm: https://github.com/souramoo/unapkm Kay Hayen and Nuitka Organization for Nuitka: https://github.com/Nuitka/Nuitka Markus Oberhumer, Laszlo Molnar & John Reiser for UPX: https://github.com/upx/upx NOTE: - Feel free to manually import the « config » file from your previous version. - About Linux users, Don’t forget to give the « x » permission to « sap » binary! On older systems the « sap » binary is not recognized as an executable but as a shared library. To help, I’ve added a launcher (.desktop file) that need to be adjusted with the executable path and the icon path. Alternatively it can be launched from a terminal or you can create your own launcher script. What’s New: - Bug Fixes - Apktool updated to 2.6.2-07d15e-SNAPSHOT This app has no advertisements More Info: CODE: SELECT ALL [email protected] Download Instructions: ● Linux: Code: The contents of this section are hidden Mirrors: Code: The contents of this section are hidden ● Windows: Code: The contents of this section are hidden Mirror: Code: The contents of this section are hidden TRANSLATE with x English The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden var LanguageMenu; var LanguageMenu_keys=["ar","bg","ca","zh-CHS","zh-CHT","cs","da","nl","en","et","fi","fr","de","el","ht","he","hi","mww","hu","id","it","ja","tlh","ko","lv","lt","ms","mt","no","fa","pl","pt","ro","ru","sk","sl","es","sv","th","tr","uk","ur","vi","cy"]; var LanguageMenu_values=["Arabic","Bulgarian","Catalan","Chinese Simplified","Chinese Traditional","Czech","Danish","Dutch","English","Estonian","Finnish","French","German","Greek","Haitian Creole","Hebrew","Hindi","Hmong Daw","Hungarian","Indonesian","Italian","Japanese","Klingon","Korean","Latvian","Lithuanian","Malay","Maltese","Norwegian","Persian","Polish","Portuguese","Romanian","Russian","Slovak","Slovenian","Spanish","Swedish","Thai","Turkish","Ukrainian","Urdu","Vietnamese","Welsh"]; var LanguageMenu_callback=function(){ }; var LanguageMenu_popupid='__LanguageMenu_popup'; The contents of this section are hidden The contents of this section are hidden The contents of this section are hidden TRANSLATE with COPY THE URL BELOW The contents of this section are hidden EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: The contents of this section are hidden The contents of this section are hidden var intervalId = setInterval(function () { if (MtPopUpList) { LanguageMenu = new MtPopUpList(); var langMenu = document.getElementById(LanguageMenu_popupid); var origLangDiv = document.createElement("div"); origLangDiv.id = "OriginalLanguageDiv"; origLangDiv.innerHTML = "<span id='OriginalTextSpan'>ORIGINAL: </span><span id='OriginalLanguageSpan'></span>"; langMenu.appendChild(origLangDiv); LanguageMenu.Init('LanguageMenu', LanguageMenu_keys, LanguageMenu_values, LanguageMenu_callback, LanguageMenu_popupid); window["LanguageMenu"] = LanguageMenu; clearInterval(intervalId); } }, 1); |