How to turn a split APK into a normal non-split APK
Basically, there are 2 types of split APKs.
One type does have 2 split APKs (base APK + config.architecture APK), the other type does have 4 split APKs in total.
Let's start first with the easy one, the 2 split APK
1. Take the base APK and decompile it.
2. Take the lib folder of the config.arch APK and add it to the decompiled base APK.
3. Now open the AndroidManifest.xml in the decompiled base APK and remove this setup: android:isSplitRequired="true".
4. Compile the base APK, sign it or make it unsigned with the META-INF of the base APK.
5. Done =)
Now to the 4 or more split APK:
This is a bit more complicated.
The 4 split APKs are basically: base APK + config.arch APK + config.mdpi APK + config.random APK
1. Take the base APK and decompile it
2. Take all other split APKs and decompile them
3. Now put all files of the split APKs to the base APK but do not override files (there will be files already existing in the base APK, do not overwrite them!)
4. Open the AndroidManifest.xml in the decompiled base APK and remove this setup: android:isSplitRequired="true"
5. Open the apktool.yml and add in the doNotCompress tag of the base.apk everything you have in the other split APKs
6. Now you have to do the annoying job to check the .xml files in the APK/res/value folder in all the split APKs and add whats missing inside that files from the other split APKs to the base APK .xml files.
7. Compile the base APK, sign it or make it unsigned with the META-INF of the base APK.
8. Done =)