-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
to @AbdurazaaqMohammed #26
Comments
I am aware of this I will fix it in the next update
It's not possible to do this without accessing resources.arsc in some way, it should be possible with ARSCLib, but I'm busy for now, so I won't add it for a little while
I did this on purpose because I couldn't find a good way of checking if a file was already decoded or not. But I'll try it again
This is just Android file picker nonsense, on my device it automatically opens the last folder used, which is better than always going back to a specific folder, and from what I've seen it's not even possible to consistently set a default path to open.
All those tools (NP, Apktool M, LP, and my app) can view and edit manifest files from each other fine, the problem is with that Explorer app, and I can't do anything to solve it without the source code of it or MT Manager to figure out why it can't decode edited files unless they were done using MT. |
I've fixed some typos in the OP, you can check if this changes some of your answers... ;) In future, you can perhaps consider and implement a nice custom file explorer/picker, like the one in SAI (by Aefyr), which actually allows using either the built in one, or the system's, it's user's choice. The sorting preference for the app's one is in the settings there. Regarding the crippled Manifest/XML > IDT, the problem is in Root/Explorer, I've discussed this years ago with the developer over multiple E-Mails, there's something with the formatting and it doesn't only read properly just files saved by MT Manager, but original/untouched or fully decompiled and recompiled packages as well, edited or not, IDK if you played with Root/Explorer and edited XML at all or enough, but I'm pretty sure that it's something with the AXML formatting and handling by all those apps that can quickly and dirty edit aXML, which it looks like only MT Manager does well and properly, basically anything else that can quickly modify/edit the Manifest - screws it (doesn't affect any system AFAIK, as such install and work), which doesn't prevent other apps from directly reading or editing it, so if anything - Root/Explorer at least shows me that something is edited in a quick/dirty/noob/bad way if i'm not sure and can't tell otherwise, honestly I don't even want the dev. of it to change how they are being read in order to show those properly and I haven't checked if other encoded XML(s) in a package are also crippled that way when edited without full package de/reCompile, or with anything other than MT (MT is awesome, but not perfect either, too bad it's expensive for my taste and I'm not a modder to make $ from monetized links to afford Lifetime VIP + MultiLogin to make it worth the purchase). IDK if semi-direct editors of/for encoded .xml for other OS also cripple the Manifest, I don't use such (not that they are many), only used apktool for a while on Windows and Linux in the past, years ago. |
SAI uses all files access permission, it's not possible to use custom file picker in newer versions of Android without granting it and this app doesn't need it, eventually I will make an patcher combining the features from my existing projects, which can actually justify having the permission.
I forgot, MT decompiles the XML on a server. That's why it always needs internet and takes long. So I don't know what it uses to decompile and recompile it on the server. Also I tried arsclib/REAndroid APKEditor and it doesn't "cripple" it
How exactly does paying for MT VIP or decompiling everything in apktool make it not any of those things? |
IDK how well these ReAndroid's projects - APKEditor or ARSCLib .jar applets can work on and decode and encode back XMLs, because I've never tried them, I don't currently have Java installed on PC and I don't usually use things without a GUI or executables and I couldn't find any video on YT demonstrating the APKEditor, but I'm glad that it does it properly and I hope in future your projects also to be able to do it as well, if not better. I hope for the best ;), good luck and happy smooth coding.
My English might not be native, but I believe it's pretty good and I've read this at least 3 times, but still couldn't comprehend the question here and I don't know how to answer to it, can you please rephrase it/elaborate ?, because of what I understood, my answer could only be - IDK. |
You said "Root/Explorer at least shows me that something is edited in a quick/dirty/noob/bad way if i'm not sure and can't tell otherwise" My question, since MT VIP will not show this, why is editing using those tools "quick/dirty/noob/bad" but MT VIP isn't? |
It isn't, because it always saves readable by Explorer and everything else manifest on Android itself, unless previously crippled, then it won't fix it, or at least that was the case the last time I played around with this. Also MT has ID2Name with VIP. Any tool that can save readable as the untouched manifest is in my opinion a one that's worth using (if that makes any sense). I don't think I need to unnecessarily explain why exactly I used specifically the words dirty, noob and bad, I hope I didn't managed to somehow offend you, if I did, pls. forgive me, because that wasn't my intention. BTW, the last update of the NP Manager claims to fix a critical bug in axml, let's hope is this one. |
No, it doesn't make any sense, there is no other app that has this problem, every other AXML decoder can read it fine, unless it somehow affects the performance of the app or something why would it matter. Also MT did "fix" previously "crippled" files for me. |
IDT we can consider the Viewer of Explorer exactly a decoder. If you want, you can ofc. contact SpeedSoftware if you are certain that the problem is 100% there to get to the bottom of this, but I still don't believe its his app fault. Bye for now. I hope you manage to push some update(s) ASAP to your editor to at least fix the more obvious things, like the text color, etc. Your "AntiSplit M" also needs a lot of work. |
I fixed these 2 issues. About MT and the encoding, I believe MT actually does ID2Name by checking all ID references through byte approach, without decoding the XML, extract them from resources.arsc and put it in a new resources.arsc (To avoid uploading the whole resources) and uploads it to the server where it runs aapt or apktool. I came to this conclusion becuase of how MT is the only app that can decode 2 kinds of obfuscated XML, Invalid chunk type 0 and EOFException (Those are the errors thrown by axml2xml). Here is a sample of the first and second types for reference, the first is supposedly from Protect in ReAndroid APKEditor, and the 2nd one is from Modder Hub encryptor axml2xml can't decode either, Apktool can decompile the 2nd but not the first, NP can only decompile the first, now MT is the interesting one, the string pool editor can edit both, but in the 2nd you will see a bunch of blank space at the beginning, because of how the length of fields were spoofed, but the full decompile works perfectly, so I believe it fixes the first error just like NP then uses apktool/aapt on the server. (Editing it by string pool will fix the first error, NP also fixes it) Now since MT doesn't cause the "Crippling" of xml, I think it checks whatever changes you made and applies it by byte approach, both in string pool and full decompiler (Or maybe send it back to the server to recompile, idk).
I don't know whether you meant files edited by MT/apktool are smaller or the other tools are smaller, if the latter, this actually means all the other tools are superior, and we should actively strive to use xml2axml to compile instead of apktool, because saving even a single byte is more useful than keeping it readable by an app that no one would use to or even knew could decode AXML, and yes its a decoder, anything that converts AXML to human readable format is a decoder. |
Thanks. The ID2Name theory thing would be valid if you have VIP and the option enabled and a resources.arsc to use in the first place and only in the Decompile method, so it can create a dummy temporary/working resources.arsc, it probably doesn't work that way with String Pool, without ID2Name and without resources.arsc to get the references from, like when editing external outside of package encoded .XML and nothing else is available to know the origin of or get any references whatsoever. The fucked-up encoded .XML's are the ones with less file size (AFAIR) until fixed by a proper full package de/recompiling (apktool) and the size is not everything in this case, especially given the 2 examples by you and when it has to be as close to the source/original as possible and not crippled, relying on the decoder to handle/fix it to make it somewhat readable and properly syntaxed, this doesn't mean in any way that it's OK at all, thanks good that most systems don't mind and still install packages with such. |
AntiSplit M: System "Files" app and .xapk - AntiSplit M doesn't show up as available option in the "Open with" or "Share via", but it does for .apkm and others, along with other apps that can handle them, I think that this shouldn't be a system limitation, but I might be wrong. Selecting splits that aren't in any archive is not possible with your app and archiving them to .zip also doesn't merge them, because it either doesn't list the splits or it says that it's searching for them and in both cases it always modifies the .zip file to an invalid 0 bytes on (that's really bad and is just and only because the extension is non other than ZIP).
These 2 don't seem to make any difference in this case: |
Can you check what MIME type are xapk files on your device? For me it is application/octet-stream (You can check it easily in Apktool M > click file > Details > More > Properties) |
You can long-press > Properties, without going to Details > More first, but YES, the MIME Type is the same you see, perhaps you can exclusively add it to the manifest to support it, I've seen Video/Audio Players exclusively mentioning some known/common file extensions there (it includes lots of |
AXML Editor (1.7.0) ...I somehow expected it now to look more like the AXMLPrinter (I haven't tried to build it with Actions and I don't have any IDE setup that I can use to build it locally), but this will probably increase the size or whatever and complicate the things for you... |
No I meant this menu this is a PopupMenu in Android Now I themed the dialog too
I really don't understand what you are saying, if you didn't see AXMLPrinter app what were expecting it to look like |
Now it's not even a dialog anymore, but fullscreen (worse than before), couldn't it be as it was, just not white ? AXMLPrinter - like on the screenshots... |
I dont know why it is fullscreen trying to theme some things on Android just ends up goofy like this I think those screenshots are from Modder Hub |
Actually it was so much better as a dialog, that I've changed my mind and will be ok if it's in white, as long as it's not as currently, because the Search drop-down is still in white anyway and there's no indication that it's clickable and expandable drop-down at all, only the text is colored, overall it's aweful looking. Please check out the discussion about IDP if you haven't, because I've included 3 new crashes few hours ago. |
The 2 lines seem like the same thing... |
|
Does AntiSplit M has more than 64K method references, if not why suddenly using it ? How much larger is the .apk without |
No, but I used this option isCoreLibraryDesugaringEnabled to help make it work on older Android versions, it includes some of the newer methods in the APK itself and puts it in a new dex file, so it makes you enable multidex And it's only about 100KB more but I disabled renaming of objects in ProGuard so it shouldn't affect debugging much. |
I get it. Thanks. |
Well I tried turning it off and all the names in /res/ are still obfuscated, I actually have no idea how to make them normal again |
That's odd, what's the IDE you are using - Android Studio ? The option to save in the source folder actually doesn't, but it creates an |
Can I make SAI install mismatched splits ?, I've searched here in code and I've found a value that I can set to |
Damn those pointless translations of things, can't people learn and just use English, such a basic app and yet they want it multilingual (first Russian & Ukrainian and now Turkish, along with de, es, fr, zh), anyway it looks like in near future you will have to add a language picker as well... |
Bruh
Yeah
It is supposed to do this only if it couldn't write to the same folder, if you share a file with the app the filepath is in /data/
I aint doing that I wasted too many hours trying to get other signing methods to work
I guess apkcombo check and does not update the splits if there is no real change. For me antisplit does not work even after editing the version code.
I dont think it will be simple as changing a boolean. The version code of all the splits probably needs to be the same as the base for it to install. APKcombo installer probably sets it somehow at runtime. |
The comment on the language might seem more edgy, but it's not like that, some devs. hold on the releases to wait for the translations and you need to implement a language picker or at least a option to force it to English, because if the app sets itself to the system lang. (if supported and translation is available), and one wants it to another and is not with A.13+, they won't be able to change it, for example let's pretend that my OS display lang. is German, but I want this app in English, how do I set it on below A.13 ? Picking and selecting a file from within the app saves the merged file in it's own AntiSplit-M directory as I mentioned, but it wasn't like this before, so I don't get why now, because it CAN write to the source dir., it did before, it just doesn't, also it still saves 0 bytes files and it probably still overwrites ones that aren't 0 bytes. There are complaints ever since A.12/3 came out to this day (I've seen ones very recently - the other day) that some people can't install SAI on some picky systems/configurations/devices, but it's certainly not because SAI's SDKs, but only because SAI is signed only with scheme v1, good luck to them installing AntiSplit-ed by your app, without resigning them with something else. After editing the build numbers to match the base, the app doesn't crash, but it's not translated either, while merging them as they are causes it to crash. I came to the same conclusion after many hours, that it doesn't exactly depend on SAI to install splits with mismatched vers., but the system refuses to go with the installation, but that doesn't mean that I still don't want to try it by altering SAI, anyway, I still don't know how to properly do it in smali, so I will probably have to compile it from source with the change sometimes in future if I don't forget, tho one thing I noticed is that MT Manager doesn't install those either (nor does the APKCombo installer, IDK why you thought that it does - it's their fault that they pack mismatches and the modders fall for it and now we have apps that crash and they wonder why - that's why), but those that MT installs (with the correct splits from other sources) does it for all the users for some reason, not just the current one, at least with root, which is wrong, but not exactly what we are discussing. It would be nice to improve a bit the UI/UX by adding border indicators / dividers / visible spacers to the dialogs/pop-ups, like the splits picking one, because at least on non OLED (IDK about Amoled - haven't used it on such much) it's very hard to tell where that dialog/ue window ends with that default pure black theme/layout, not that it will be much diff. with other colors, because there are no borders whatsoever. Check out the Port Authority v.2.4.1 app for example - pure black as well, but beautiful, with blue border lines/dividers. |
https://github.com/AbdurazaaqMohammed/AntiSplit-M/blob/master/settings.gradle.kts |
Will test it when I can, but for now it's left the option to not merge mismatched (already available in G2) or at least warn about such when selected/present... "When signing an APK, apksig chooses the most appropriate cryptographic algorithms based on the Android platform versions supported by the APK being signed." ^> Does this now also applies for and to your app, meaning that on really old OS vers. it will only sign with the ones supported by the system and not with the 3 at the same time ? - if true, then that means that if distributed to newer, you might want/have to resign it (I dislike that quote, APKTool M does this by hiding the schemes that aren't supported on older A. vers. and I hate it for this)... |
Ok, I was thinking that as you said it's a basic app, if someone has their phone language changed they will understand enough to use it, but I understand what you are saying, anyway I added it
I had implemented a check to ensure writing to the file is possible, I'm not sure why it didn't work properly, now I fixed it
Ok, I suppose the splits are fully wrong then, I was just guessing that there was an actual reason apkcombo does it like that. I will try to add checking for mismatched splits and prompt to skip them if it's only language splits and not necessary for the app to run
I did this
Fixed this
No, it has the options to enable v1, v2, v3 when signing and I enabled all |
Thanks for the reply. For most of the things that you confirmed that you've addressed - I know already, I'm subscribed to/"watch" the releases (GH feature) and monitor the commits and issues, that's why I previously wrote that "Will test when I can" in my last comment - I was referring to the latest changes/fixes. ;) "I will try to add checking for mismatched splits and prompt to skip them if it's only language splits and not necessary for the app to run" -> 👍 Keep in mind that if one proceeds with the merging anyway, the apps that have internal language picker/selector will expect to have the correct resources/splits (split_config.language.apk), but they won't, so when merging mismatches (without altering their versionCode to match the base) the AntiSplitted app will crash not only if you try to manually change the lang. (from say EN to other), but also when the system's language is one of the supported by the app and you just launch it, because it will expect the resources strings to be the correct ones and will try to display itself in that lang. This is what I tested so far with, I haven't with other types of mismatched splits, except DPIs, so IDK for sure if every app will crash when merged with the wrong splits vers., like libs and/or dynamic features, but it probably will, rarely anything works that way. "No, it has the options to enable v1, v2, v3 when signing and I enabled all" -> Nice. Thank You. I had an idea for the app icon that shows full sized android vertically splitted in half with rough edges and stitched with a medical bandage, I can't show anything tho, because I'm not good with graphical designs, only with ideas (if I attempt, it will have to be ugly made in ms paint and it will look terrible like it was done by a kid and AI does a terrible job as well). |
v1.6.3.8 has 2 APK asset files with according to GH identical file size (one properly named and one with a generic name), I didn't DL them yet, but I wonder why 2 and what's the difference if any... ReadMe: I know that at this point the screenshots are old and don't show the improved UI, but still - you can set a dispaly size for them, like thumbnails, which should be clickable to full size and expandable (under details markdown) to show, so hopefully they don't unnecessarily load everytime along with the repo, or like how are they here (broken, but still you can see what I mean and Thank You): https://github.com/TeamPiped/Piped |
The toast messages text in the bubble are misaligned on Samsung with A.10 Does the log have to state "Not an APK file Skipping" so many times for every file that is not an .apk, can't it show it only once ?, because I've seen too long reports in the repo's issue tickets... Btw the APKSigner is with the AntiSplit M file picker button label [Select split apk to merge/antisplit], probably because you used it as a base and I see in the UI that it does support v4 scheme now, but it doesn't actually sign with it (IDK if it makes sense to add support for v3.1), anyway, I guess you will soon address those things, given that it's the first release. What's the purpose of APKSigner/app/src/main.zip [1.25 MB] and AXML-Editor/app/src/main/res.zip [194 KB] ? |
@AbdurazaaqMohammed I'm not opening an issue in your aXML Editor repo on purpose, but I've noticed the following:
The editor's text is black on a black background, so it's invisible by default, I had to change its color.
There's no ID2Name, so it's hard to know what's what.
It asks to save decoded 2 times as a .txt file, while it can be as .xml so the syntax can perhaps work...?
It caches files and sees (hallucinates) that some are on storage, while they aren't anymore and by default it opens Recent, but it should either /storage or /storage/Download.
It cripples the encoded .xml, check with Explorer or Root Explorer (Paid) by SpeedSoftware to see what I mean - it's not actually readable after the edit, for that matter anything that can edit the Manifest "directly" does cripple it that way, being "APKTool M", Lucky Patcher or even NP Manager (I think, have used it previously) and I'm not sure about the old APK Editor Pro and the mods of it, but I don't remember it doing this, MT Manager on the other hand compiles/decompiles it properly always, being the string pool edit or the full edit one, but there are lines limit and it wants VIP for the unlimited edit (unfortunately), that's why I need your tool to work better.
Thank you.
The text was updated successfully, but these errors were encountered: