[Micromax A110] sheshuvadrevu:
Why Update Doesn't Work???

Bros, Here I'm going to share my bit of knowledge, and will give you the reason why ported official updates do not work, i.e, why they do not patch a thing in the ROM.

Sorry guys i'm late,i couldn't find time to write this as per my commitment,...

I will try to keep it in simple terms, i will try to make everyone understood, but i have to use some technical terms guys, pls bare with me...

Even i want to give only patches to the users, but it doesn't work that way, that is the only reason, official updates work on official releases only, we cant just port the update and make it work on our ported rom...

1. Notice one thing here, there are many files which are not from the official release in our ported roms, just for the sake of example, see, the image

View attachment 1945046

There are so many files which are not from the official release,not only in this folder, in many places you can see such different files. so you are clear that files are different from the official release, right??, ok lets move on,

2.Here Hash code is unique, atleast withing ROM, they are unique, example is 249d0d0716bffa5d83c9245aaf300d131906e05a, this is unique for each file in the rom

3.Look at the ported patch given for ported rom, and look at the official patch given for official rom, you will find that the main assert statements are removed, removing them will make flashing process smooth, but actual thing you need to observe is,

these are the example line you would see in an update file,

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Removed from official patch

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

assert(apply_patch_check("/system/app/ApplicationsProvider.apk", "c20e8ed09af4f63fa26f7ee6278d2ce9473a1d13", "1b1312a1c8eac16b6d9472be5e36c47e1fadbd55"));

set_progress(0.000062);

assert(apply_patch_check("/system/app/ApplicationsProvider.odex", "5a1d5eaa7785640ad8a642bbe5aed31fcdc855a2", "6aea9d8ec5c940fbcc64b67a2c3b5a980c90760b"));

set_progress(0.000225);

assert(apply_patch_check("/system/app/AtciService.odex", "c99e3df56b1b10368c6f9a7a8d375c2f57072a01", "7f648b149cc8457bbeb688171b2f41cc6c81b0c5"));

set_progress(0.000651);

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

in these statements the function(apply_patch_check) either checks if a file has been properly patched, or checks if a file can be patched,

if the fuction says(returns) "False", that means assertion, checking failed, leading to unsuccessful patch...

here this function, will patch if only when the perticular app(ApplicationsProvider.apk), has not been modified ever, if it is modified, it will not have the same hashcode specified after the name of the app in the function, i should be equal to the hash codes beside it...

Here one who ported the patch removed those assert statements, notice the update patch you have been given, they do not have the assert statements in your patch, they have been removed since the assertion fails, i.e, the function says that, the files cannot be patched. so dev removed them.

Again observe from the original update,

here there are two rounds of patching, first is assertion, i.e, checking whether some file can be patched or not, it can be patched only when you have full official file in your rom, if it can be patched, then the process of patching starts, like, take the app(ApplicationsProvider.apk) into consideration, if the above assert statement succeeds, then the app can be patched so we need to call another method to patch it, that is

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

apply_patch("/system/app/ApplicationsProvider.apk", "-",

405a37e895400a5de0860e77d934c2183ca5d98c, 10383,

249d0d0716bffa5d83c9245aaf300d131906e05a, package_extract_file("patch/system/app/ApplicationsProvider.apk.p"));

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

here the apply_patch method patches the app, if it can, otherwise it will not, leaving the programmer uninformed about the result of patching process, that is the reason why programmer first does assertion, and then patching

so one thing u should have understood after reading everything here is, if assertion fails, patching fails...

here assert statements are removed since they fail, and the update is released without them, leading to successful flashing, unsuccessful patching :)

When everyone wanted me to release patches, even i tried to do the same thing what our fellow bro, has done, wanted to remove the assert statements, and simply release them, but later got to know that actual scenario is so much different from what i expected, so withdrew from the idea of releasing the ported patches...

If you observe no ported rom gets, ported patches, like official ones get, this is the reason behind it... Hope you guys understood, if you do not understand :rolleyes: , do not bother, live your life just like yesterday :)...

My only intention is to educate you in this regard :good :...

A patch is authentic if and only if assertion takes place and success(TRUE) as the result :)

Cheers Guys :)