Related
My problem is making the device as it was before a firmware upgrade, without being forced to reinstall everything.
Supposedly there are now backup options (from Sprite and SPB) that allow you to restore to a firmware updated device (or even a new device!).
I don't trust those. They vaguely claim that they do that, but we have to wonder how.
Also there are a few programs (a couple of them in here - even one with subscription) that "re-provision" the device. To be honest I find them VERY complex. I think it takes more time to set those up properly than re-install everything (if we talk about 20-30 apps and a normal "firmware update" cycle... I am not talking about people with 400 apps and testing all the custom ROMs 3-4 a week). Even if you set those up properly, they take long time to re-install everything.
I thought about this and the problem is in fact simple:
What possibly changes between firmware updates?
- ROM software
- Auto-installed from ROM software
- Some registry entries (also possibly some removed and some added)
Is that true?
So. The solution I propose is not as "stupid proof" as commercial backup/restore solutions, but I think it is also WAY safer than them. It is also much faster than "re-provisioning" programs.
What is the process to follow:
- Install the program I propose (let's call it "Smarter Upgrader") FIRST before anything else installed on the device (maybe only after the forced provisioning that happens anyway).
- You tell the program to take a "fresh system backup".
- Program makes a nice image of the whole registry.
- Program makes a nice backup of everything without "ROM" attribute from main memory.
- You forget about the program.
- You install everything you need and work with your device normally.
- A new ROM comes up and you want it badly.
- You run the program and command it to take a "pre-upgrade backup".
- Program takes a full registry backup or if it is smart enough, already makes a comparison with first backup and just stores the changes (also detects possible eliminated keys - although this is rare from factory to used non-upgraded device).
- Same for main memory software. Backs up only what shows different (or new) from the time of "fresh system backup". If some ROM software is replaced (as is the case of hotfixes), then it is detected as new (as in "fresh system backup" ROM files were ignored anyway).
- User does the upgrade.
- After the upgrade (and forced provisioning), installs this program first.
- Program is run in mode "post-upgrade, new fresh device" backup ("new fresh device" as this mode will also replace the original "fresh device backup" with a new one).
- This mode will take the full image of the registry.
- Compare this registry with the ORIGINAL "fresh device" registry and the differences it detects are the new or changed keys of the new firmware (correct?).
- Will then compare those "differences" to the "pre-upgrade backup". The program here has many many new keys (from the installs of apps before the upgrade), that will normally RE-ENTER back to the registry and possibly a few keys that are different between ALL THREE: the original registry, the upgraded registry, the pre-upgrade registry. These are normally system related keys that the user (willingly or without knowing) has tweaked while using the device (before upgrade). Here the program should ASK the user what to do (this is why the program I propose is not for the "WM freshman"). For example there is a possibility that a key in 1.43 Leo ROM, sets the screen sensitivity to something, then a tweak program sets this to something else. Then new ROM has a different default value. Here the user will decide if he wants to follow the new ROM default or his tweak. I don't think this will be for 100 keys. It will be a much smaller job.
- Next the program will do almost the same for main memory software. Will compare "fresh device" with "post-upgrade". If there is anything (non-ROM attribute) different, it is marked as "new ROM default".
- Then system compares this with the "pre-upgrade" backed up main memory software. What is not "new ROM default" and is not already in the device, it is written back on the device.
- For the programs that ARE in "fresh install", ARE marked "new ROM default" (so the new ROM has a new version) AND are in the "pre-upgrade backup" (so user has installed some version manually), system asks. For example (again Leo) has Google Maps, user finds a new version in Google (well this is real example) and new ROM has yet a different one. System asks which to keep. Later if program becomes smarter, it could detect version strings and automatically use the newer one.
- Program performs a general clean up (for example make sure the Start Menu is as the user had it configured before upgrade, or as close as possible - I for one like to make folders and move everything in them) and soft resets.
...after this procedure (that seems long but I doubt is longer than "re-provisioning" and is surely shorter than reinstalling and WAY safer than "ROM upgrade" backup software modes), the device should have the new ROM and the software that was installed before.
Three steps:
- Backup clean device (this is what commercial backup solutions lack so I don't trust them)
- Backup device before upgrade
(upgrade)
- Post-upgrade Process (which also serves as the NEW backup clean device file for further upgrades)
...allow the system to do it's magic during the third step.
BTW as an idea for the concept I propose, SKTracker is a program that half-way goes where I want.
What do you people think?
Hi
I think is a nice idea. I cant understand why other programs dont include it right now. Is a very interesting and useful project. For sure most of us would use it. This days I am very busy but if no one do it I will develop it as soon as I ve time....
Dani
I hope someone can handle this.
I didn't include databases in my analysis, but I am sure we can stuff them somewhere in between...
BTW I also pointed this thread to the SK Software guys... Maybe they could make something (since their software is already halfway there)...
Here is SKKV reply:
Hallo, Nick.
We have quite a long time thinking about it. At this time exist many not solved problems which not allow create high-quality product with this feature.
I hope ever been we will release it.
Click to expand...
Click to collapse
So if someone is up to the task, all yours.
So i am here with a new idea. A rescue.zip which can be used to rescue any android device which have a recovery like the famous cwm.
So here is it..
Some times we people screw up our android os like hell, and to reboot the device we usualy do a recovery flash of a new os, flash back our nandroid backup ( both on worst conditions) or even do permission fix, clean cache or dalvic cache( those in 'not that worse' conditions) . So thats are all the options we got. Rit?
Although flashing recovery backups, new roms can fix all, it will also eatup our apps, current setups, contacts, msgs, etc( in case we dont have backups) and will probably screw us. All we can do is say " WTF..WTF..WTF.."
SO here is my idea,
Find out the causes of what causes a reboot, non-boot, hang,fc etc.
And keep a zip that can be flashed through recovery, that has a solution for our problem. They may be including..
1) fix permission of system, data, and user data.
2) zipalign the apps
3) fix the default clock speed of processor
4) defragment memory
5) flash a new copy of su and busy box
6)wipe data or system or ext or cache or dalvic cache
7) flash a new copy of framework.res, system-ui.apk, settings.apk with default permissions( those files are kept in separate "custom" folder on the zip, so that end user can put their own files to that "custom" folder for flashing., the reason behind it is known to all, yap. Not all devices have them in common, every device have its own files)
These are all i got for now, pls post ur ideas and knowledge for any possible cure about any problem u faced/ cured. So that we can make it an ultimate rescue.zip that have a cure for 99% problems android os have. The rest 1% will go with a clean flash.( well we cant avoid that if we did something that bad).
So my plan is to use aroma installer( now on hard learning to find how it works). Throw in some scripts, files etc. Into the zip.
And since its not a device specific .zip file, i want to know how and why any problems are caused in any device( there are many common problems, but that is not what i ask for. I ask for device/os specific problems, and not for a problem that we can cure after booting, but for a problem that can make the device un-bootable) . So u people may help me to find those problems and cures for it. For my knowledge i have experience with wildfire and hd2.
Well i will keep this thread for a week or two, so that u can post ur knowledge, and info. after that i will release the file for u.
To the admin. Of the forum, pls keep this thread as announcement so that all can take a look.
HYPERDROID EXTREEM EDITION-THE NEW BENCHMARK ROM FOR HD2.
If you plan to do this available to any android device, the file size will be so big that it will become useless. Every phone has different apk, and not only that, but those apk are different in different version of os. For example, CM9 framework should not work on google release. Worst, older CM9 framework might not work on newer CM9 and newer framework might not work on older. Also, one of the cause of bootloop that i have been experiencing since i have my GNexus is data corruption of apps. The only way i had was to wipe data. I dont think there is a way to know if your app are corrupted with script. I also seen a lot of strange problem on SGS II like the kernel being erased. Well, in this case this package would be useless. So i guess that having this package would be awesome, but wont happen. My best advice is that you could create a universal guide on how to recover from bootloop/fc/hang with the minimum of impact on the phone. This is just my opinion tho.
Sent from my Galaxy Nexus using xda premium
You could add using flags in the updates filename, see some roms or themes for the lg optimus 2x for more information. It uses sed. For example, "update-wc-wd.zip" would wipe /data and /cache.
You could also merge these features in a customized clockwork mod recovery, the up side would be that you could automatically make a backup of the last flashed full ROM's systemui etc. this would also allow usage of the touch screen/volume keys to choose an repair option. You could even allow users to backup specific applications along with their data, and let users restore it later on after a fresh flash. I have some basic knowledge in modifying the recovery so I might help you out a little if you're interested.
chadouming said:
If you plan to do this available to any android device, the file size will be so big that it will become useless. Every phone has different apk, and not only that, but those apk are different in different version of os. For example, CM9 framework should not work on google release. Worst, older CM9 framework might not work on newer CM9 and newer framework might not work on older. Also, one of the cause of bootloop that i have been experiencing since i have my GNexus is data corruption of apps. The only way i had was to wipe data. I dont think there is a way to know if your app are corrupted with script. I also seen a lot of strange problem on SGS II like the kernel being erased. Well, in this case this package would be useless. So i guess that having this package would be awesome, but wont happen. My best advice is that you could create a universal guide on how to recover from bootloop/fc/hang with the minimum of impact on the phone. This is just my opinion tho.
Sent from my Galaxy Nexus using xda premium
Click to expand...
Click to collapse
I told it already, the "custom" folder is not filled. It will be kept empty. The user can put a file, which ofcourse is the file of the device he/she have or want to get repaired. All he has to do is copy and paste the file from the working zip( zip file of his currently installed rom, that encounter the problem) of his rom to the custom folder inside the rescue.zip.
And the things that are common will be scripts, but those too will contains device specific mound points, paths, etc. I think that will be common( ie, the working of script, once the mound is done). Am i right?
So all i have to figure out is mount points, paths etc.. i got a couple of them, about 15 or so. And pls help me to find the rest.
HYPERDROID EXTREEM EDITION-THE NEW BENCHMARK ROM FOR HD2.
a good idea to add is a file system chech like windows systems has. By installing a rom the installer should first check for bad sectors and mem blocks before installing the rom. After all blocks and sectors are scanned and the bad ones marked as "bad or corrupt" it should run something like defrag and place the bad blocks at the end of the file table. When all is done .. then the true rom install should start.
This will prevent heaps of problems since the curent installs just write over a bad block or sector creating the most weird problems. A fault checker/repair will take away a lot of strange forced closes and othere software/hardware failures.
Most phones wont last that long so that bad blocks or sectors can occure. But for the flashing junkies among us its a serious problem what can occure. I guess after 1000 or more installs bad sectors or blocks will occure and not all are being able to be repaired
Sent from my Galaxy Nexus using XDA App
Mikevhl said:
You could add using flags in the updates filename, see some roms or themes for the lg optimus 2x for more information. It uses sed. For example, "update-wc-wd.zip" would wipe /data and /cache.
You could also merge these features in a customized clockwork mod recovery, the up side would be that you could automatically make a backup of the last flashed full ROM's systemui etc. this would also allow usage of the touch screen/volume keys to choose an repair option. You could even allow users to backup specific applications along with their data, and let users restore it later on after a fresh flash. I have some basic knowledge in modifying the recovery so I might help you out a little if you're interested.
Click to expand...
Click to collapse
I am totaly newbee to lg. I have experience with htc, few samsung, etc. So can u pm me the details? Also is it usable to create recovery? I think a zip file with selectable options is more friendly. The thing is building a recovery wont make it universal( or atleast common for a couple of devices) and we will have to port them for each and every device. Thats the problem.
But any way i want ur help in building it. Can u pm me an example for mounding script in lg devices? And any thing that may become useful. Thank you.
HYPERDROID EXTREEM EDITION-THE NEW BENCHMARK ROM FOR HD2.
wilwilwel said:
a good idea to add is a file system chech like windows systems has. By installing a rom the installer should first check for bad sectors and mem blocks before installing the rom. After all blocks and sectors are scanned and the bad ones marked as "bad or corrupt" it should run something like defrag and place the bad blocks at the end of the file table. When all is done .. then the true rom install should start.
This will prevent heaps of problems since the curent installs just write over a bad block or sector creating the most weird problems. A fault checker/repair will take away a lot of strange forced closes and othere software/hardware failures.
Most phones wont last that long so that bad blocks or sectors can occure. But for the flashing junkies among us its a serious problem what can occure. I guess after 1000 or more installs bad sectors or blocks will occure and not all are being able to be repaired
Sent from my Galaxy Nexus using XDA App
Click to expand...
Click to collapse
Pls pm me the idea how to make the checking script. Or links that have info in this. Thank u in figuring out such a prob. I am unaware of that.
HYPERDROID EXTREEM EDITION-THE NEW BENCHMARK ROM FOR HD2.
showlyshah said:
I am totaly newbee to lg. I have experience with htc, few samsung, etc. So can u pm me the details? Also is it usable to create recovery? I think a zip file with selectable options is more friendly. The thing is building a recovery wont make it universal( or atleast common for a couple of devices) and we will have to port them for each and every device. Thats the problem.
But any way i want ur help in building it. Can u pm me an example for mounding script in lg devices? And any thing that may become useful. Thank you.
HYPERDROID EXTREEM EDITION-THE NEW BENCHMARK ROM FOR HD2.
Click to expand...
Click to collapse
I'll send this as a PM as well, but people might learn from this. I am not talking about any specific mount points for LG phones, I just pointed out that there are some roms which use sed to check the filename of its update.zip and do tasks according to that, you need to have one line in your updater script to run the script which detects what to do. That way a user of a Galaxy Nexus would rename it to update-maguro.zip and it would know to use mount points for the maguro, while if the exact same update.zip was to be named update-p990.zip, it would know to use the mount points for the LG optimus 2x. This way you could easily keep the zip up to date for any device, because they all use the same update.zip
About the recovery, you would need to build it for every phone once, but you could make one change to the recovery source and easily compile the recovery for all phones which are capable of running CWM. I believe this method to be more user friendly, as a recovery image has support for actually choosing what you want to do, instead of having to rename the file. A recovery image also has a better way of communicating with the user. Where a update.zip can only say "Hey, I had an error and I'm quitting now, I won't give you any details what the problem was because that's just how update.zips roll", a recovery image would be able to give more advanced outputs, like "An error occurred when trying to mount /data." And then give you the option to either try again, manually fix it by using a computer with adb, or quitting.
But that's just my personal opinion. The recovery would be way harder to make, but I was the original porter of CM6, CM7 and HTC Sense to the xperia mini pro and mini back in the days. I also made a custom recovery and roms for the HTC desire Z, maintain a CWM port for the HTC Chacha which I don't even own and have used the LG optimus 2x before. (currently a maguro owner) but I'm trying to say that I've been experimenting a lot with different phones and know what the possibilities of Android are. you could even make a live Android build, tailored for recovering your phone, which is ran by an update.zip! How cool is that? That would be VERY device specific though..
let me know what you think is the best way to do this. I was thinking of making a mobile time machine app for some time so it's good I saw this thread.
Hi, I've always liked to modify ROM ZIPs by just opening them, and then deleting the stuff I had no interest in (say, for example, DownloadProviderUi.apk), and doing that has always worked just fine after installing it (talking about Eclair and Froyo).
However, since the release of GB/ICS based ROMs, if I go as far as to modify just one file - even simply replacing the bootanimation.zip contained within the ROM ZIP, after it has been installed and rebooted, there's no lockscreen (deactivating and activating it again does nothing) and the HOME button doesn't work - it acknowledges that it's being pressed, but it simply doesn't do anything at all (return and recent do) - trying to change its default behaviour has no effect at all. As far as I'm aware, the problem spans across multiple (all I have tested) GB/ICS ROMs and a few different and completely unrelated (different brand) Android devices.
Also, installing those same ZIPs without making any modifications keeps any issues from ever happening.
I'm aware that they can be removed using ADB after it has been installed, using Root Explorer to mount /system as RW and deleting them manually, using Titanium Backup to freeze or remove, etc...
I'm mostly interested in having some light shed on the above issue. -Why- do those ROMs always fail if the ZIP file is modified in any way? Is there no way around it?
Thanks for taking the time to read
EDIT: Just in case, I've already tried searching for information regarding these problems, and other than unanswered to and very scarce comments, I've been unable to find anything revealing in any way - I'd appreciate if someone could point me in the right direction if there's something I've missed.
Are you signing your apks before trying to install them?
The APKs..? I'm guessing you meant the ZIP - if so, no. I could give that a try later and see how it goes...
No, I meant apks, but only because I've had an experience nearly exactly like the one you're describing and it was from trying to package the rom with an unsigned apk.
Ah. Well, I guess if I tried adding an APK it'd happen as well - my issue is I want to edit the updater-script (extract, edit with notepad++, throw it back in...) and/or remove APKs (for example, I have no interest in /system/app/DownloadProviderUi.apk). Like, fire up winrar or 7zip (tried with both), browse to the file, delete, then copy it over the to device and install the ROM - the bug always shows up.
Uncompressing the entire ROM, modifying away and then creating a new ZIP makes no difference, either...
EDIT: No dice - I've taken Hashcode's latest ROM, just for reference:
Untouched ZIP works flawlessly.
Modified unsigned ZIP doesn't have a lockscreen and the Home button doesn't respond when pressed (though it acknowledges being pressed).
Modified signed ZIP does exactly the same as the unsigned one.
I am wanting to get a clear understanding of the structure of the Android phone - hardware, firmware and software - in particular, relating to the Samsung Galaxy S4 mini, Canadian edition SGH-I257M.
I have been a computer bum since the mid-60s. I have extensive experience with machine and assembly languages, microcomputers and microcontrollers, programming "to the metal" [as we used to say], as well as C and high level languages, and a little UNIX knowledge via QNX from the century gone by. But i have been retired from all that for 15+ years and am entirely new to smartphones and Android.
So i have some questions.
But first, i have read and read and read. Too much hi-tech info the "get it" all at once. In particular i have found these threads specific to the SGH-I257M ...
Galaxy S4 Mini Archive
http://www.s4miniarchive.com/2013/12/How-to-unroot-and-unbrick-Samsung-Galaxy-S4-Mini-SGH-I257M.html
Root new S4 mini model SGH-I257M
http://forum.xda-developers.com/showthread.php?t=2470173
STOCK and ROOTED SGH-I257M
http://forum.xda-developers.com/showthread.php?t=2520299
and several others on rooting various specific-only versions of the S4 mini, CyanogenMod, flashing firmwares, etc. But no complete, tested process for rooting this specific model, or for installing CyanogenMod on it, etc.
And a little history ...
Back in the mid 60s a visiting professor at the University gave a talk entitled "Hardware, Software and Underwear". The title was of course, intentionally provocative. It was a bit mysterious to us at the time, but the idea was to encode low level software in hardware to make it run faster, among other reasons. The term underwear did not stick. Instead we have firmware, and in particular on microcomputers, the BIOS - Basic Input Output System.
Question #1: with regard to Android, my guess is the the BIOS is the interface between the physical hardware and the Linux Kernel. Is this concept of the system structure correct? ...
hardware <-> BIOS <-> Linux Kernel <-> Android System
Question #2: I am not clear on the various categories of memory. The S4 mini has a SIM card, either 8 or 16 gb memory [mine has 16], and may optionally have up to an additional 64 gb memory via a microSD card installed by the owner. Is the BIOS on a separate chip like in microcomputers? Any other memory types? [I have a feeling that i am missing something].
Question #3: Which physical memory contains each of the BIOS, the Linux Kernel and the Android system?
Question #4: I am thinking that CyanogenMod is a replacement for what i have labelled Android System in my simple structure diagram in question #1 above. Is this correct?
Question #5: The idea of rooting the phone is clear to me. I know what is the root directory on a computer hard drive and that the rooting process gives the user access to both that directory and permissions to do anything [delete, rename, replace, install, uninstall, whatever]. And that doing this voids the warranty.
When spring/summer comes along [and they will, even in this cold and frozen Canada!] i expect to be off on my motorcycle [vintage IronHead] for extended periods. I will want to do whatever to extend the battery life of my phone. So i am anticipating rooting the phone by then and perhaps installing CyanogenMod. I have not yet seen a clear process for rooting for the Canadian S4 mini SGH-I257M including making appropriate backups of the system software, or for installing CyanogenMod, but i am looking. Any pointers to this i would appreciate.
Question #5: Any books on this topic of Android system structure, especially wrt Samsung smart phones? I know, books are so last century; so maybe a website, forum thread, or whatever.
TIA! More ?s later.
Mick
OK, i got some answers on another forum, and these answers have been very helpful. So as i understand things now, ...
The BootLoader is in a rewriteable ROM, an actual physical chip
The 1.5 gb RAM is what i have been missing. This is where currently running programs are stored, temporarily, until both they are no longer running and the system needs the RAM to run another process
The 16 gb storage is equivalent to the hard drive on a PC. All software - Android system and apps - are stored here, and are loaded into the RAM when they need to run. The storage is divided into partitions.
I can see what programs are currently in RAM by Settings | more | app manager | running
I can see what programs are in storage by Settings | more | storage
As mentioned, the common use of the word ROM does not refer to an actual physical ROM chip or to software that might be loaded into one. Rather is is a generally accepted but misused term for replacing the whole [or perhaps part of the] operating system.
So now i have two more questions/thoughts ...
What about these partitions? Are these really partitions like on a PC hard drive? or are these really sub-directories of the root? There would be certain partitions, standard with the Android setup, each with a specific purpose. It would be helpful to know at least a few of these.
In my running apps list i see S Voice. Hhmmmm, i thought i deleted this app. I know i did. I do not need it to be in there, taking up space and CPU cycles. I expect that it is OK to Stop it, and that it will re-start itself next time i power off/up. I'll have to go down that list and see what else i can "put a stop to".
TIA. More ?s later.
Mick
Got some more info from the other forum, including this excellent link to an explanation of the partitions, so things are moving along ....
http://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/
Looks like the "partitions" are "directories", using the old MS-DOS and UNIX terminology. So once rooted, ...
cd / goes the the root directory, or
cd /recovery goes to the recovery directory
and ...
ls
would list the contents of whatever is the current directory.
Mick
Hi everyone!
I am a new user but long time supporter and fan of xda and alas I have a problem and need some help:
1. I seem to have issues creating a full backup (newest version of sdk installed) on windows and ubuntu. File is only 1kb large and takes 1 second to create
2. I have to use the same image/backup.ab file for almost 1000 tablets( I have done this before but the same methods are not working for some reason) (yes they are the same tablets)
3. Restore said backup file via usb hub (5 at a time) to the devices (I have also done this in the past and would like hear some thoughts)
4. All apps and data (wallpaper, books, etc.) also has to be completely replicated on the new device. (This has also been done and working so thoughts appreciated)
Points 1, 2 and 3 are the ones I need most help with, I will take any and all advice into consideration and test them.
Thanx!