Related
This script has 2 main uses:
1. Modify an update.zip
2. Create an update.zip
For #1 - You just extract the contents of an update.zip into the placehere folder, modify its contents, and run the script stating to create an update.zip
For #2 - So far these are the options i have in there for create the update-script
1. Copy directories
2. Copy files
3. Create Symlinks
4. Delete file
5. Delete directory
6. Flash boot image
7. Set permissions for file
8. Set permissions for directory
New Features in 2.0 :
- Set java heap size / compression level for zip
- New drag/drop mode.
>>> - If you drag a folder onto the script's icon (as in Script.bat) it will compress the contents of the folder into a zip and sign it.
>>> - If u drag a zip onto the script's icon (as in Script.bat) it will sign the zip for you.
So this script guides u as u select each option, and adds the appropriate command to the update-script file. Then u exit that sub-menu and create update.zip
Heres a video for a better explanation:
This script is a result of me constantly wanting to modify roms before i flash them & users who are unaware/lost as to creating/modifying update.zips.
Download : [Windows]
Awesome Gotta try it out.
I tried using this to just push a single app into /system/app just to see if it would work, but when I try to flash from recovery I get E:Syntax error in update script
when I open my update script it reads thus:
Code:
package_extract_file("LearnPython_1.1.1.apk", "/system/app/Python.apk")
Do you know what the issue might be?
marsevern said:
I tried using this to just push a single app into /system/app just to see if it would work, but when I try to flash from recovery I get E:Syntax error in update script
when I open my update script it reads thus:
Code:
package_extract_file("LearnPython_1.1.1.apk", "/system/app/Python.apk")
Do you know what the issue might be?
Click to expand...
Click to collapse
Hmm thats wierd. Can u try placing the file inside a folder withing the placehere folder? N then try it. Tell me if tht works, in meantime ill try a example, perhaps the new changes i made broke something
K i figured it out, i forgot to place a ; after the line. Try placing it and then flashing. Ill fix it.
update-script is now
Code:
package_extract_file("LearnPython_1.1.1.apk", "/system/app/Python.apk");
but I still get a syntax error
Edit: I had also tried putting it in a placeholder file, but that didn't help either, even with the added semicolon
Hmm so something seems wrong with my package_extract_file syntax
Even though ive compared it to online update-script samples. Regardless, for now use the copy directories option instead.
marsevern said:
update-script is now
Code:
package_extract_file("LearnPython_1.1.1.apk", "/system/app/Python.apk");
but I still get a syntax error
Edit: I had also tried putting it in a placeholder file, but that didn't help either, even with the added semicolon
Click to expand...
Click to collapse
Retry, cuz i just did it and it works fine.
Created a folder app inside placehere folder
placed my apk inside it
Ran the script, chose option 1
Then chose option 1
Then typed DATA
Then typed app
Then typed app
Then typed 9
Then typed 2
Then flashed the update.zip
Letter Casing matters, if it says SYSTEM or DATA , do that dont do data or system.
Btw, first clear out using the script. So when u run it. type y to clear ur previous work.
marsevern said:
update-script is now
Code:
package_extract_file("LearnPython_1.1.1.apk", "/system/app/Python.apk");
but I still get a syntax error
Edit: I had also tried putting it in a placeholder file, but that didn't help either, even with the added semicolon
Click to expand...
Click to collapse
K i uploaded a fixed one. No file option for now just directory. And added a push to sdcard option. I think wht u were doing was putting it inside a folder and still using the file option.
Yay, it works now. Thank you for creating this and for helping me.
marsevern said:
Yay, it works now. Thank you for creating this and for helping me.
Click to expand...
Click to collapse
Cool, glad to help. Let me know if i can make it more user-friendly
Daneshm90 said:
This script has 2 main uses:
1. Modify an update.zip
2. Create an update.zip
For #1 - You just extract the contents of an update.zip into the placehere folder, modify its contents, and run the script stating to create an update.zip
For #2 - So far these are the options i have in there for create the update-script
1. Copy directories
2. Copy files
3. Create Symlinks
4. Delete file
5. Delete directory
6. Flash boot image
7. Set permissions for file
8. Set permissions for directory
So this script guides u as u select each option, and adds the appropriate command to the update-script file. Then u exit that sub-menu and create update.zip
Heres a video for a better explanation:
This script is a result of me constantly wanting to modify roms before i flash them & users who are unaware/lost as to creating/modifying update.zips.
Download : [Windows]
Click to expand...
Click to collapse
It would be nice if the download link worked and didn't take me to some wierd web sites everytime I click on the download button!
sparksco said:
It would be nice if the download link worked and didn't take me to some wierd web sites everytime I click on the download button!
Click to expand...
Click to collapse
the link works. it's hosted on mediafire and sometime ad page pops up.
sparksco said:
It would be nice if the download link worked and didn't take me to some wierd web sites everytime I click on the download button!
Click to expand...
Click to collapse
sunzoje said:
the link works. it's hosted on mediafire and sometime ad page pops up.
Click to expand...
Click to collapse
Well the reason i do it on something like mediafire is cuz its not xda dependant and that its one of the few sites with no waiting time for downloads. Plus i get to monitor # of downloads, in order to know if something is in demand, hence ill work on improving that.
Daneshm90 said:
Well the reason i do it on something like mediafire is cuz its not xda dependant and that its one of the few sites with no waiting time for downloads. Plus i get to monitor # of downloads, in order to know if something is in demand, hence ill work on improving that.
Click to expand...
Click to collapse
Ok, well I've tried both firefox and IE and they both do the same thing. Can you post a mirror because I've never had any problems with mediafire downloads before? I even logged into mediafire and it still gives me this error:
The website declined to show this webpage
HTTP 403
Most likely causes:
•This website requires you to log in.
What you can try:
Go back to the previous page.
This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website, but it does not have permission to view the webpage.
For more information about HTTP errors, see Help.
sparksco said:
Ok, well I've tried both firefox and IE and they both do the same thing. Can you post a mirror because I've never had any problems with mediafire downloads before? Do I have to log in to mediafire? It gives me this error:
The website declined to show this webpage
HTTP 403
Most likely causes:
•This website requires you to log in.
What you can try:
Go back to the previous page.
This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website, but it does not have permission to view the webpage.
For more information about HTTP errors, see Help.
Click to expand...
Click to collapse
Hmm k sure. Heres an xda attachment.
Did you know you are awesome?
You are awesome
Daneshm90 said:
Retry, cuz i just did it and it works fine.
Created a folder app inside placehere folder
placed my apk inside it
Ran the script, chose option 1
Then chose option 1
Then typed DATA
Then typed app
Then typed app
Then typed 9
Then typed 2
Then flashed the update.zip
Letter Casing matters, if it says SYSTEM or DATA , do that dont do data or system.
Btw, first clear out using the script. So when u run it. type y to clear ur previous work.
Click to expand...
Click to collapse
It works just fine for me too. I just combined Chromatic3.7 rom with httclay's theme by changing the framework.apk and the services.jar files. I also deleted some system apps as well as added a couple of my own. I also put my own bootanimation.zip on there and it works fine.
My first successfull update.zip
Ok so I have messed around with this a lot and I have successfully created a update.zip rom that runs stable. I decided to go with the Chromatic 3.7 rom based off of cm-5.0.8-DS Stable. Feel free to download this and give me your feedback. I take no credit for this rom what so ever. All of the credit goes to Chromersmith and the other devs that made this, not me! This rom is only 1mb larger than the original, about 59mb. What this rom includes:
-reverse nexus style bootanimation (added by me)
-Stock ADWLauncher.apk from cm-5.0.8-DS Stable (has the nexus style launcher, but isn't all themed up. It runs smoother because it isn't as much of a system hog. Added by me)
-apps: Mytouch Music (came with rom not added), 3D Gallery (removed Gallery for same reason), cachecleaner (great for freeing up internal memory), Wireless Tether v2.0.2 for eclair, and of course all the regular stock system apps like YouTube, etc.
And of course you can modify this and re-post your own results as well the same way I did. Isn't that the whole point of this thread?
IMPORTANT! Make sure you read the Chromatic 3.7 thread to get all of the requirements and settings correct after flashing:
http://forum.xda-developers.com/showthread.php?t=679135
I take no responsibility for anyone that breaks their phone because they don't know what their doing!
And of course enjoy:
http://www.mediafire.com/?1zzhoj32oqw
I just finished my second update.zip
Ok so I put a lot more work into this one than I did the first one. This is based off of the CM-5.0.8-DS Stable rom+gapps. I got sick of having to flash the gapps seperatly after flashing the rom, so I just added them in.
-Added the Multitasking OC Kernel and a lot of other things like a black status bar mod, and a custom ADWLauncher icon.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
-Added other icons to stock apps like music and a few others that I can't remember right now lol.
-Removed the stock Cyanogenmod boot animation and replaced it with the reverse nexus style one (takes up less memory and boots faster, really fast!). Once you get it flashed and get everything set up, reboot your phone and watch how fast it boots up. Mine boots in about a 30 seconds once the boot animation comes on.
Apps included:
-3DGallery (Default Gallery, removed Gallery to save on internal space)
-CacheCleaner (Good system cache cleaner to free up that internal memory!)
-New Phone.apk added from Chromatic3.7 rom (looks very nice btw)
-Wireless Tether v2.0.2 for Eclair roms.
Requirements:
-Danger SPL or Engineering SPL:
If you do not have these or know what they are then do not flash!
-I highly recommend that you have a swap partition of at least 32mb:
If you want this rom to run smoothly, or enable compcache under spare parts app.
Instructions:
-Do Nandroid backup!!!
-I recommend a wipe if your coming from anything other than cm5.0.8-DS based rom, otherwise, just flash it, and then run fix permissions!
-Download and flash as normal:
It will say welcome to cyanogenmod 5.0.8 DS! Do not be alarmed, this is not a stock version of his rom! I did not want to take the credit away from Cyanogenmod and his team for this rom, since I am using so much of it!
-SetCpu:
Install SetCpu. Run app and select auto detect speeds. The kernel on this rom will allow you to overclock way faster than you should. I can run this stably at 614MHz max, and 245MHz min on ondemand. If you go more than this, your phone will probably lock up, and you will have to pull the battery out just to reboot.
-SpareParts:
After Flashing you must change the clock and date color under spare parts found in the settings menu. I changed everything to white because it's a black status bar, but change to whatever color you wish. Also change the Carrier PLMN label color, and the Carrier SPN label color. The only color I change under the notification settings is the Notifications ticker color. Set window animations and transition animations to fast! Check fancy input animations and launcher in memory.
-ADW settings:
Under sreen preferences set Desktop scrolling speed to 0, it's silly fast! Set Desktop overshoot to 50. Select orientation sensor and auto stretch.
Under UI settings check Hide AllApps Bg and Hide AB Bg, and this will make your launcher look much better. Uncheck scrollable widgets unless you use them. Select whatever else you want, I like to select Hide icon labels and closing dockbar as well. The only one I don't check is the tint ab.
Run Firerats Patch:
Download and run Firerats Patch. This will patch things like facebook sync, enable swap partition, and a lot of other things. Dowload and place the fr-patch133.txt file on the root of your sd card. Go to terminal emulator and type "su" and press enter. Type "sh /sdcard/fr-patch133.txt" and press enter. This will bring up a list of commands for the script, along with an example of how the script works. Everything should install correctly unless your don't have a swap partition on your sdcard then it will not install swap. Everything else should install just fine. Once it finishes type "reboot" and your all done! It will take a long time to boot as it is finishing up all of the installations. Be patient and do not interrupt it by rebooting or powering off your phone!
http://forum.xda-developers.com/attachment.php?attachmentid=348484&d=1277328643
Make sure swap or compache is working in terminal emulator. Type "su" and press enter. Type "free" and enter.
I have put a lot of work into this, so that I can use this as a daily driver rom, until a stable froyo release comes out. This rom is really fast once you get it set up correctly. I mean let's face it, we have no idea how long it will take for froyo 2.2 to be realeased. So until then, let's keep on modding!
Disclaimer: I am not responsible if you break you phone because you did not read the requirements or follow the instructions correctly!
Download Link:
http://www.filefactory.com/file/b27a6g7/n/CM-5.0.8-DS-Black-OC-Mod.zip
if we have a lot of files, do we have to write them manually into cmd one by one?
SouthPaw Version 2.1 - Final Deodex
***Two Versions - Odex(to come soon) and Deodex***
Click to expand...
Click to collapse
Odex for pure speed, and Deodex for themes
Latest A2SD built right in. NO config needed -- Bloat removed for speed
Click to expand...
Click to collapse
No Longer a specific Cellular South based rom! Any carrier using a Hero can run this Rom!
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Removed Apps:- AmazonMp3 - DiscoverCenter - Flickr - GoogleSkyMap - HTCFootprintsLayar - LearnMore - Movies - Stocks - Teeter - Textcs - Twitter - Various HTC Widgets (will have download links tonight)
Themes:
To use these you will need Metamorph.
Metamorph - Link to Market (go from phone browser) Metamorph
QRCode for Metamorph(use barcode scanner)
The Blue Echo
Made by Pappa Smurf, ported to our rom from Leadfoot
http://www.mediafire.com/?buacudiq2if9kti
Must install metamorph from market before using these themes.
NOT COMPATIBLE WITH ODEX VERSION!
"to apply. simply download then put on SD card in folder called AndroidThemes. then go to metamorph click "start checks" then "unzip new theme" click on "TheBlueEcho" zip file. then just do it like the other theme. it can go right over it no need to wipe or recover anything. thats the great thing bout metamorph just as always make sure you nand backup just in case." -leadfoot9281
Click to expand...
Click to collapse
Red Dawn Theme:
By Pappa Smurf, converted to our rom by Leadfoot:
http://www.mediafire.com/?tuc8xlwb61e98wm
after you metamorph this call sombody without a picture, if the little android guy is blue and you want him red metamorph this.
http://www.mediafire.com/?71tw4etfslasd96
for the market- NOT A METAMORPH FILE MUST BE PUSHED WITH ADB
**EDIT ... took market down til I can fix.
i would recommend doin a nand backup before pushing this. i pushed it 4 times to my phone. 3 of those times it worked fine. the one time it didnt work i have no idea why as i didnt do anything different.
to push this go to adb shell and type :
mount -o rm,remount -t yaffs2 /dev/block/mtdblock3 /system
now back put of shell and put the Vending.apk into the push folder. now you will type :
cd push
adb push HtcDialer.apk /system/app
....................now your done.
A majority of this theme is from papasmurfs RedDawn with a few tweaks of my own and some random icons i have ran across place to place. i cant take the credit for this other than i test each thing and make sure it functions and get it to work for a stock rom (like this one) and simply put it together.
BTW: no FC's for contacts or contact widgets on this one. thats what took so long lol.... only issue i know of is setting up speed dial. other than that, all of it works. been using it a few days now. If you run into anything let me know and i will see what i can come up with. - Leadfoot
Click to expand...
Click to collapse
Flipping Animations (Metamorph)
***If it messes up, you WILL bootloop. This MAY work with odex but not sure yet. BEST DO A NANDROID PRIOR TO USING THIS METAMORPH FILE!!!***
Download:
http://www.mediafire.com/?mn883l6v0i6nhaa
Click to expand...
Click to collapse
Alternative Weather Clock (Metamorph)
Download: http://www.mediafire.com/?3hajyxj1g9dpahe
***NOT A FLASHABLE ZIP!/NOT COMPATIBLE WITH ODEX ROM!!!***
Extract zip file to the AndroidThemes folder on your sdcard after installing metamorph, and use metamorph to apply it. It says to restart after applying, but no need to do so.
Click to expand...
Click to collapse
Black Haptic Dialer (Flashable Zip NOT a metamorph!)
http://www.mediafire.com/?2d1jewavnhytd9f
Click to expand...
Click to collapse
Where to download:
SouthPawV-2.1-Final
Deodex: http://www.mediafire.com/?n55a39vc4loetcl
MD5: 4892e91d8af0db765d74741be2db02cd
Bloat download: http://www.mediafire.com/?uo9oja1q7x6zb59
**Bloat download NOT flashable. Push via adb**
(SP-2.0 Final Links)
***Odex is FASTER than de-odex, but is NOT THEMABLE!***
http://www.mediafire.com/?jcl2i8mzlfw1glu
MD5 Sum:d2569d8b937266b2873251bfa556c6e2 SouthPawV2-Final-Odex.zip
***DeOdex is not quite as fast but still mighty fast, lightweight and best of all.. THEMEABLE!!!***
http://www.mediafire.com/?004a3qv0xw0jjat
MD5 Sum:6abe77ca31494cb314c8076117925e81 SouthPawV2-Deodex.zip
Click to expand...
Click to collapse
For Colin_ph users!
The bf/adnan kernels can't be used with the regular version of collin_ph battery mod. You have to use the edited version below and change your governer to the settings shown below.
http://github.com/Decad3nce/battery-...5d1156014134c2
"Recommended Settings for Tweak:
For BFS Kernel:
CPU Governor: Ondemand
I/O Scheduler: deadline/cfq
For CFS Kernel:
CPU Governor: Interactive
I/O Scheduler: deadline/noop"
To change the governor, look into the 2nd post for instructions.
Click to expand...
Click to collapse
For the future: For later updates you can find it all here in the SouthPaw folder:
http://www.mediafire.com/?ye6pbkdgps4b5
This is where the flashable add ons will be soon as well.
***Updaters***
Do not update over previous rom! Backup/Nandroid, and then wipe and flash!
***Thanks N Applause***
leadfoot - thank you for porting that theme!
dsixda - Without your kitchen this wouldn't be possible. F*ing clean software man.
Darchstar - For the Kernel. Awesome man awesome!
Collin_ph - Any extra battery life is great!
JsChiSurf - Love your dialer. Sry I didn't ask before adding it to this rom but didn't figure it would be a big deal.
MrDanger - Your rom is lookin' good. And thanks for helping my users out here and there too.
KyleIsTheBeast - For my first rom ever flashed. Bittersweet was good while it lasted and hope to see you dev'ing in the future.[/SIZE]
Reserved for the Red Corner!
***Issues found!***
none yet.
***How to check the MD5 Hash***
Windows (and mac) users:
1. download Hashtag, a free md5 file hash check utility from here: http://beeblebrox.org/hashtab/
2. After downloading and installing, just right click on any file. On Windows, select properties and you will see a new "File Hashes" tab. On Mac select "File Hashes" (on 10.5 the "File Hashes" menu item will be found under the "More" submenu). This is will start HashTab providing more or less the same view that you see on Windows. This File Hashes window displays all the hashes for the file.
3. Check the hash to make sure it's the same big jumble of numbers and letters as the hash above. If it is not the same, the download is bad and you should redownload the file.
Linux users:
1. go into your linux terminal or shell (not the adb shell)
2. navigate to the folder that contains the rom (mine is in downloads, so you would type 'cd Downloads')
3. for my rom, type 'md5sum SouthPawV1.5Final.zip
4. the output should look as shown:
Code:
OUTPUT_ZIP$ md5sum SouthPawV1.5Final.zip
F0D9E1F279FA7B0FA8636616499CD0C8 SouthPawV2.0-Beta.zip
[email protected]:~/Desktop/kitchen/OUTPUT_ZIP$
Installation:
***for newbies, see the second post under "How to root/maximizing my rom experience"***
1. Nandroid
2. Wipe
3. Flash
4. After install see configuring a2sd for more memory on the phone and JIT/Swap configuration in 2nd post! (and possibly a faster phone if you have a class 4 or higher memory card)
Bloated apps can be re-downloaded here: http://www.mediafire.com/?7ektxbiq0h65ftr
***Radio***
Also removed the Radio.img file. If you want the file you can download it here:http://www.mediafire.com/file/u2z11ar9ga6qn3a/CSouth_Radio_Signed.zip
MD5 Hash: 9157b63be585abef5812f71691cc4899
*You do not need to be flashing this file if it's already updated because that is the one file that CAN brick your phone if it's corrupted. ALSO if you ARE downloading this file, CHECK THE MD5 hash! Instructions above. It could mean the difference between a happy updated phone and a BRICKED phone.*
***How to root and Maximizing your rom experiance***
I hold no responsibility for any actions resulting from these links and/or this post.
How to root your CS Hero. Read first post, it describes everything
http://forum.xda-developers.com/showthread.php?t=581869
***How to flash any rom***
After rooting your phone to install any rom (not just mine)
1. backup everything if you have not already done so, you will lose EVERYTHING on the phone itself, (except for everything on the memory card)
1a. download my rom or another rom (as long as it's for your phone and radio)
1b. place the rom in the root directory (or the main directory rather) of your sdcard.
2. Turn the phone off
3. While holding the home button, press the power button until you see the recovery mode menu. (I am using clockwork mod 2.5.0.1 so depending on your recovery YMMV. You should use the instructions for your specific recovery system. They are using Darch's version of AmonRA's recovery, This is covered in the first post on that link as well.)
If you are using Clockwork Mod, you can use these instructions:
4. go to wipe data/factory reset and go to yes to start the wipe.
5. scroll down to wipe cache partition, and confirm
6. scroll down to advanced and wipe dalvik cache.
7. After that, scroll down to "install zip from sdcard"
8. select choose zip from sdcard
9. select the rom file from the memory card (mine will be SouthPAW!1.5-Final) and confirm to flash it.
10. Once the flash is done, reboot the phone. It's going to take between 5 and 10 minutes to boot the first time so be patient, and don't mess with it. After you get in you are golden, and nothing else is to be done. You have made it..
***how to maximize your battery performance***
This rom comes with an overclocked kernel that automatically sets itself to maximize battery life. But there are things you can set to make the kernel do what you want
***Kernel parameters***
You don't have to use any overclocking software to set the speed of the processor with this kernel Here is the parameters:
Syntax: echo "(speed in hz)" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Example:
echo "768000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Click to expand...
Click to collapse
Sets the cpu to max out at 768mhz
echo "710000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Click to expand...
Click to collapse
Sets the cpu to max out at 710mhz
Also...
If your gps quit working for some reason do this:
mount -t debugfs none /sys/kernel/debug
echo "NORMALIZED_SLEEPER" > /sys/kernel/debug/sched_features
echo "NEW_FAIR_SLEEPERS" > /sys/kernel/debug/sched_features
Click to expand...
Click to collapse
To change the cpu governors for this kernel (the built in ones) here is how:
Type this to find the available governors:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Click to expand...
Click to collapse
The ones available are:
conservative
ondemand
userspace
powersave
performance
interactive
And then to change the governor, you type this:
echo "nameofgovernor" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Click to expand...
Click to collapse
I haven't found full explanation on ALL the governors, but I guess it's a no brainer, however here is the info I pulled off of the kernel thread:
(For Interactive governor)
This governor is designed for latency sensitive workloads, UI interaction for
example.
Advantages:
+ significantly more responsive to ramp cpu up when required (UI interaction)
+ more consistent ramping, existing governors do their cpu load sampling in a
workqueue context, the 'interactive' governor does this in a timer context, which
gives more consistent cpu load sampling.
+ higher priority for cpu frequency increase, rt_workqueue is used for scaling
up, giving the remaining tasks the cpu performance benefit, unlike existing
governors which schedule rampup work to occur after your performance starved
tasks have completed.
Existing governors sample cpu load at a particular rate, typically
every X ms. Which can lead to under powering UI threads when the user has
interacted with an idle system until the next sample period happns.
The 'interactive' governor has a different approach. Instead of sampling the cpu
at a specified rate, the governor will scale the cpu frequency up when coming
out of idle. When the cpu comes out of idle, a timer is configured to fire
within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer
fires then we assume the cpu is underpowered and ramp to MAX speed.
If the cpu was not 100% busy, then the governor evaluates the cpu load over the
last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down
to.
There is only one tuneable for this governor:
/sys/devices/system/cpu/cpufreq/interactive/min_sample_rate:
The minimum ammount of time to spend at the current frequency before
ramping down. This is to ensure that the governor has seen enough
historic cpu load data to determine the appropriate workload.
Default is 5000 uS.
Click to expand...
Click to collapse
One last thing is that this kernel keeps logs. Even though they are hard to read if you want to see them, type this:
adb remount
adb pull /proc/last_kmsg last_kmesg.txt
Click to expand...
Click to collapse
***how to partition for apps2sd for Amon Ra's Recovery and Cyanogen's Clockwork Mod Recovery***
Instruction Source: http://www.villainrom.co.uk/wiki/index.php?title=Apps2SD#Normal_Installation
How to Setup SD card partitions from AmonRa's Recovery:
1. backup your stuff on your memory card. It is very possible that this will erase everything on your memory card.
2. Shut down the phone
3. Press and hold the home button while pressing the power button. Keep holding the home button until you get to the recovery menu.
4. Select Partition sdcard
5. Select Partition SD
6. Set the following partition sizes using the trackball or volume buttons:
-ext: 512MB - recommended. You will feel like you can install everything from the market.
-swap: none -not a prerequisite but recommended. use at least 30mb.
-fat: remaining
7. Reboot the phone. It may take a little while for boot to finish on this boot only.
How to Setup SD card partitions from Clockworkmod Recovery:
***Do not partition with Clockwork mod. There are some issues that I have read that will mess up your install***
There are alternative methods for this, but it's just easier to use Amon_Ra's image for this.
***How to setup a2sd/Swap/JIT***
A2SD is already enabled by default on this rom. However Swap and dalvik to sd is not!
To get swap working (if you made a swap partition on your sd card)
1. get to adb
2. adb remount
3. adb shell
4. a2sd reswap
To move Dalvik cache to sd -
5. a2sd cachesd
VOILA! 149MB free on the phone! *w00t*
Also there is more config you could do here. You can enable JIT *dunno if it works, so add at your own risk*
***More info for a2sd configuration***
Code:
Standard Apps2SD Commands:
--------------------------------------------------
reinstall
Moves free and paid apps to the ext2/ext3/ext4 partition on your secure digital card. Removes the No A2SD flag file.
This is used if you have already executed an a2sd remove command. Otherwise, this part is automatically performed when Apps2SD is started.
File removed: /data/.noa2sd
remove
Moves free and paid apps to the internal phone storage. Creates the No A2SD flag file.
File created: /data/.noa2sd
Swap Partition Commands:
--------------------------------------------------
reswap
Removes the No Swap flag. Allows A2SD to activate the swap partition.
This is used if you have already executed an a2sd noswap command. Otherwise, this part is automatically performed when Apps2SD is started. Note: This command has no effect on roms where the swap space is not built into the kernel.
File removed: /data/.noswap
noswap
Creates the No Swap flag. Prevents A2SD from activating the swap partition. Note: This command has no effect on roms where the swap space is not built into the kernel.
File created: /data/.noswap
swappyxx
Sets the swappiness setting for the swap file. xx sets the swappiness percentage used. (i.e. to set swappiness to 30%, type a2sd swappy30.
Dalvik Cache Commands:
--------------------------------------------------
cachesd
Moves Dalvik cache files to the ext2/ext3/ext4 partition on your secure digital card. Creates Dalvik Cache to SD flag.
Caution: If your phone fails to mount the ext2/ext3/ext4 partition and your dalvik-cache is pointed to the SD card, you will likely end up in a boot loop. Execute a2sd nocache from adb shell to rectify the issue.
File created: /data/.dalvikcacahe
File removed: /data/.dcpartition
cachesdreset
Same as cachesd above, but erases the contents of the dalvik-cache after move. This performs both the a2sd cachesd and a2sd resetcache all in one command.
File removed: /data/.dcpartition
cachepart
Moves Dalvik cache files to the /cache partition in your phone. Creates Dalvik Cache to Cache Partition flag.
Caution: Some phones do not have enough space to put the dalvik-cache on the cache partition. Also, some roms that have SenseUI installed may not work well with the dalvik-cache on the cache partition (although this issue appears to be fixed starting with Darktremor 2.7.5.1). If you experience issues such as force closes, try moving the dalvik-cache to the SD card (a2sd cachesd) or internal storage (a2sd nocache) instead.
File created: /data/.dcpartition
File removed: /data/.dalvikcache
cachepartreset
Same as cachepart above, but erases the contents of the dalvik-cache after move. This performs both the a2sd cachepart and a2sd resetcache all in one command.
File removed: /data/.dalvikcache
nocache
Moves Dalvik cache files to the internal phone storage. Removes all Dalvik Cache flags.
File removed: /data/.dcpartition, /data/.dalvikcache
nocachereset
Same as nocache above, but erases the contents of the dalvik-cache after move. This performs both the a2sd nocache and a2sd resetcache all in one command.
File removed: /data/.dcpartition. /data/.dalvikcache
resetcache
Clears the dalvik cache and restarts phone.
Apps2SD Diagnostic Commands:
--------------------------------------------------
check
Performs a symlink and flag file check on your setup. Outputs a report that shows you if
there are issues with your Apps2SD setup.
repair
Performs a repair of all symlinks based on flag file activation.
diskspace
Shows disk space statistics for the ext partition.
sysinfo
Displays information about your phone, partitions, swap, and more.
Also writes a dump file that has an entire profile of your phone. This is for troubleshooting only.
File Created: /data/dtsysdump.txt
swapspace
Shows swap space statistics for all swap space active on the phone. Note: This command has no effect on roms where the swap space is not built into the kernel.
ZipAlign Commands:
--------------------------------------------------
align
Performs a one-time zipalign on all APK files in /data/app and /data/app-private.
zipalign
Allows ZipAlign to execute during the boot process. Creates the ZipAlign flag file.
File Created: /data/.zipalign
nozipalign
Prevents ZipAlign from executing during the boot process. Removes the ZipAlign flag file.
File Removed: /data/.zipalign
Dalvik Setting Commands:
--------------------------------------------------
jit
Installs DalvikVM JIT.
WARNING: Do not run this command if your phone has NAND protection active.
nojit
Removes DalvikVM JIT.
WARNING: Do not run this command if your phone has NAND protection active.
defaultheap
Resets the Dalvik heap size to the default heap size.
File Removed: /data/.smallheap, /data/.largeheap, /data/.jumboheap
heapsizexx
Sets the dalvik heap size to xx. For example, to set the dalvik cache to 24mb, type a2sd heapsize24. To reset back to default, type a2sd heapsize0 (that's a zero, not the letter "o")
Low Memory Killer Commands:
----------------------------------------------------
lowmem-moderate
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 7680 pages / 30 MB
Content Provider: 8960 pages / 35 MB
Empty App: 10240 pages / 40 MB
Create File: /data/.lmmoderate
Remove File: /data/.lmoptimum, /data/.lmstrict, /data/.lmaggressive, /data/.lmultimate, /data/.lmextreme
lowmem-optimum
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 2048 pages / 8 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 10240 pages / 40 MB
Content Provider: 12800 pages / 50 MB
Empty App: 15360 pages / 60 MB
Create File: /data/.lmoptimum
Remove File: /data/.lmmoderate, /data/.lmstrict, /data/.lmaggressive, /data/.lmultimate, /data/.lmextreme
lowmem-strict
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 2048 pages / 8 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 15360 pages / 60 MB
Content Provider: 17920 pages / 70 MB
Empty App: 20480 pages / 80 MB
Create File: /data/.lmstrict
Remove File: /data/.lmmoderate, /data/.lmoptimum, /data/.lmaggressive, /data/.lmultimate, /data/.lmextreme
lowmem-aggressive
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 21000 pages / 82 MB
Content Provider: 23000 pages / 90 MB
Empty App: 25000 pages / 98 MB
Create File: /data/.lmaggressive
Remove File: /data/.lmmoderate, /data/.lmoptimum, /data/.lmstrict, /data/.lmextreme, /data/.lmultimate
lowmem-extreme
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 38400 pages / 150 MB
Content Provider: 40960 pages / 160 MB
Empty App: 43520 pages / 170 MB
Create File: /data/.lmextreme
Remove File: /data/.lmmoderate, /data/.lmoptimum, /data/.lmstrict, /data/.lmaggressive, /data/.lmultimate
lowmem-ultimate
Sets the internal memory killer to the following settings:
Code:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 51200 pages / 200 MB
Content Provider: 57600 pages / 225 MB
Empty App: 64000 pages / 250 MB
Create File: /data/.lmultimate
Remove File: /data/.lmmoderate, /data/.lmoptimum, /data/.lmstrict, /data/.lmaggressive, /data/.lmextreme
lowmem-default
Sets the internal memory killer back to phone default settings.
Remove File: /data/.lmmoderate, /data/.lmoptimum, /data/.lmstrict, /data/.lmaggressive, /data/.lmextreme, /data/.lmultimate
***How to push an apk file using adb***
*Of course you have to have a rooted phone to do this, if not check the ***how to root*** section first before getting this far.*
This tutorial is going to use the linked deleted files zip from the link in the first post.
1. Download the Android SDK for your appropriate Operating System from here: http://developer.android.com/sdk/index.html
2. Once downloaded, be sure to download the deleted files zip from the link in the first post.
3. Extract the Android SDK file to an easily findable folder
4. Extract the deleted files from the zip file, and copy the apk file you choose to the AndroidSdk\tools folder. For reference I will be using the Dialer.apk file in this tutorial (not included in the zip).
5. connect phone to computer and select "charge only" from the menu.
(*for windows Vista/7/XP*)
*prerequisite* - you must have the adb drivers installed to do this in windows.
6. Click Start, go to > All Programs > Accessories, and from there, right click 'command' (something like that), and click 'open as administrator' (XP users do not have to do this, just go to Start > Run, type cmd, and press enter)
7 .navigate to the android tools folder you put the apk file in (the command to change directories is 'cd' and then a space, and the name of the next folder, so to navigate to the 'android' folder, you would type 'cd android', and then you can use 'dir' to see the next directories till you get to the right folder.
8. type 'adb remount'. This is going to start the adb system, and then remount the phone in root mode.
9. to check to see if your phone is mounted and everything is kosher, type 'adb devices' and it should show something on the bottom that should be your device or serial of the device. If it says ??????????? then it's not working.
10. type 'adb push HtcDialer.apk /system/app'
11. DRINK A BEER! You have pushed an apk to your phone! To check if it is installed, simply click the call button (or press phone on the rosie), go to settings and select speed dial. Then see if you can change/add a number to speed dial #2. This could possibly require a reboot to actually start the new version of the installed software but you should just be able to go ahead and use it
(*for Linux*)
6. Once you extract the android-sdk-linux_x86 folder, go to the terminal, and navigate to the android folder pretty much the same way as windows, except instead of using dir (ubuntu users can use it), use 'ls'
7. type 'sudo ./adb remount' and when asked, type the administrator password for the linux system. This is going to start the adb system, and then remount the phone in root mode.
8. To check to see if your phone is mounted, type 'sudo ./adb devices' this should show your device.
9. To do that actual push, type 'sudo ./adb push HtcDialer.apk /system/app'
10.
DRINK A BEER! You have pushed an apk to your phone! To check if it is installed, simply click the call button (or press phone on the rosie), go to settings and select speed dial. Then see if you can change/add a number to speed dial #2. This could possibly require a reboot to actually start the new version of the installed software but you should just be able to go ahead and use it
***History***
(July 21st)v.0.1 - Dirteh_South-Krome_Knuggz #First Cellular South+Root 2.1 hero rom to hit XDA! Featured Full Stock 2.1 + root, tethering, and apps2SD. --issues-- had to remove various apps because of signing issues.
Download Link:http://www.mediafire.com/?15k8u28gy9f3vka
----------------------------------------------------------------------------------
(July 25)v.0.5 - Dirteh_South-Kleen_Thugz #Removed useless apps, added Live Wallpapers. --issues-- facebook update issue
Download Link:http://www.mediafire.com/?xx0d54pnj99tuyn
----------------------------------------------------------------------------------
(July 27)v.0.6 - Dirteh_South-Fast_Dubz! #Added vUV'd 710mhz overclocked kernel, added Home Switcher, Helix Launcher, and a few small programs.
Download Link:http://www.mediafire.com/?9ithfl65laxpf0y
----------------------------------------------------------------------------------
(August 6)v.1-Beta - South Paw!V1-Beta #Went back to scratch RUU file, Name changed to hide the guilty, completely overhauled, removed useless apps, facebook was fixed, updated A2SD, overclocked/undervolted kernel, google maps, signing issues fixed, added google parts, Old skool 1.5 hero bootscreen, added custom lockcreen *by me* and background, Dconfig, Collin_ph Battery Tweak, Fixed the black dialer w/o haptic feedback.
Download Link:http://www.mediafire.com/?ipf0oonwn9zq2y1
---------------------------------------------------------------------------------
(August 12)v.1.5-Final - SouthPaw!V1.5-Final #Downgraded to previous version of Apps2SD, and previous version of Root Permissions app, modified vUV2 - boot.img file to work properly with a2sd, removed android terminal because there was no way to fix it from fc'ing if you installed from rom flash, removed Dconfig because it was not compatible with this a2sd setup, added xda-developers app, updated facebook to newest version, updated collin_ph battery tweak to newest version.
Download Link:http://www.mediafire.com/?7ro6qczcoqcxtip
---------------------------------------------------------------------------------
(October 1 - October 28th)v.2.0-Betas
beta1 - had slowdown issues due to an unstable kernel added/various things missing
beta2 - still bad slowdown- other various things missing/not working
beta3 - Once more bad slowdown/added internal tweaks for speed but didnt work
beta4 - Fixed slowdown, has internal tweaks for stable brainfuct kernel #6, added misc. backgrounds
---------------------------------------------------------------------------------
(October 27)V.2.0-Final
Removed a bunch of stuff. First ever odex version added alongside the deodex version. No added extras at all besides root, busybox, a2sd, and wireless tethering. No longer a carrier specific rom.
---------------------------------------------------------------------------------
(October 28th)V2.1-Final(ish)
Based on newest update from cellular south. Vanilla with no extras just like 2.0 Final. Removed bloat. No kitchen signed apps AT ALL for smooth working with upgrading apps
Click to expand...
Click to collapse
Hell yeah! Although the neighbors didn't appreciate me running around in the front yard naked! Hmmm.... Maybe I will try the backyard next time.
Good job. I'm glad somebody finally got a CSouth Rom on here.
If you need any assistance let me know.
Ok I go to filedropper site but all I get to download is an empty folder, 66.7kb????. Has the file name but no data, or am I completely missing the right link? Do I need to join to download? Thanks, would really like to try this ROM out.
I got the download, followed all steps, it says that the zip is bad. I deleted the old one, transferred a fresh one to card, same story. I'm downloading the zip again just to make sure it didn't corrupt while downloading.
Anyone else run into this problem?
zip flashed fine for me. Just booting up
Can this be used in other non-sprint heros?
Also, I was wondering if it is possible to have like a stripped / universal version for non-sprint heros and then install CS’s or other carrier’s stuff apart like DarchDroid did with his naked rom with Google ****s apart.
Thanks for sharing it!
I downloaded it from the link with no problem. I did the following:
1.downloaded the zip
2.transferred it to the SD Card
3.HBoot
4.Created Nandroid
5. Wiped everything
6. flashed in zip file
It works pretty good. I can't get my yahoo account to work. I also can't get the new widgets to download to the phone and work. They download and then I don't get them. Hmmmm....
Anybody know how to change pri version? Mine is 1. Something but my non rooted phone is 2.51_013
Even though I am on AT&T with a Magic and Captivate it is good to see some Cell South love around here. I will be using your rom to flash to as many friend's Heroes I know.
Bring on the Incredible, Milestone, and Galaxy S now C South!
Kaisum said:
I got the download, followed all steps, it says that the zip is bad. I deleted the old one, transferred a fresh one to card, same story. I'm downloading the zip again just to make sure it didn't corrupt while downloading.
Anyone else run into this problem?
Click to expand...
Click to collapse
yeah i got the same problem
Redfox85 said:
Anybody know how to change pri version? Mine is 1. Something but my non rooted phone is 2.51_013
Click to expand...
Click to collapse
That is odd. I have no idea tbh, but I'll try to check it out.
From here on out, any questions asked will be answered in the 2nd post on this thread.
***link is fixed!! Any issues please report!***
And yes this rom should work for non-cs users, but always take caution and do like you do with sprint roms, and it should be ok (and for those who didn't get voicemail notifications, this should support it)
hexskrew said:
That is odd. I have no idea tbh, but I'll try to check it out.
From here on out, any questions asked will be answered in the 2nd post on this thread.
***link is fixed!! Any issues please report!***
And yes this rom should work for non-cs users, but always take caution and do like you do with sprint roms, and it should be ok (and for those who didn't get voicemail notifications, this should support it)
Click to expand...
Click to collapse
somethings up with the link again i got an error saying the the files is no longer there
Just want to say thanks, working well here!
Sent from my HERO200 using XDA App
Agpilot! said:
Just want to say thanks, working well here!
Sent from my HERO200 using XDA App
Click to expand...
Click to collapse
could you send me the file there appears to be a problem with the link
To Mr. Danger, yes I will need some help soon. I want to branch this rom out to a couple of different versions. 1. With no apps (well junk apps anyways) with helix launcher and no sense, 2. With no junk apps with sense, and 3. Just the full montey (like now but with no issues)
@pound24. I just tried the link. It's working fine (from mediafire, not the old link, I removed that one)
hexskrew said:
To Mr. Danger, yes I will need some help soon. I want to branch this rom out to a couple of different versions. 1. With no apps (well junk apps anyways) with helix launcher and no sense, 2. With no junk apps with sense, and 3. Just the full montey (like now but with no issues)
@pound24. I just tried the link. It's working fine (from mediafire, not the old link, I removed that one)
Click to expand...
Click to collapse
i used a different computer and it worked about to flash in a sec
This may be a dumb question, but you do need to root before applying this ROM, right?
Yes, the phone has to be rooted before loading anything except for the stock updates from the carriers.
AROMA/TWRP version of SPFlash Tools.
This tool is for MTK devices with a GPT layout - (MT6732, MT6752 and their variants).
With some testing it may be possible to add some some support for the older devices using an MBR.
Requirements:Copy SPFlash contents to /sdcard/SPFlash
Rename *scatter.txt to scatter.txt
Run .zip from TWRPMTK-64bit_SoCs-v*.zip:During testing there will only be info displayed on screen, nothing should be modified. (Unless otherwise stated)SPFlash-v*.zip:This will install all .img/.bin in SPFlash folder if partition is large enoughDownloads:GDrive FolderChangelogs:SPFlash
v10 - Readded internal sd - fixed aroma exit/about screen - (a few cosmetic issues introduced).
v8 - Aroma menus updated
v7 - Create 'flashable' zip from backed up partitions.
v6 - Zipped backups added
v4 - Backup + Install fixed -- Aroma "Quit Installation" stalls
v3 - Backup function added - untested -- backup works / install from v2 broken
v2 - Menu Select Added
v1 - Initial Release
MTK-64bit_SoCs
v8 - attempts to fix unrelated menu/alert
v7 - calculations done quicker
v6 - script rewrite/reorder
v1 - v5: Initial test builds
Only follow menu Partition Related -> Scatter Information
Other menus/option are broken/dead ends...
Other things in the MTK folder:simg2img/img2simg are arm source compiled binaries to handle sparse files
file/magic were taken from @osm0sis's AIK (I can't seem to get file to compile)
MTKsplit is used to split boot/recovery images into it's individual parts. Normal images will split into 3; 1 = img ANDROID! header, 3 = kernel (zImage) and 5 = ramdisk (ramdisk). MTK images split into 5; 1,3,5 as before with 2 and 4 being additional headers.
XDA:DevDB Information
TWRP/AROMA SPFlasher, Tool/Utility for all devices (see above for details)
Contributors
HypoTurtle
Source Code: https://drive.google.com/open?id=0B8WPOq9wZyKxfktHVWgxbW9nYmtJd1ZWc2RIM1NXUU5pSXpramg0bVBYYUdyRDhid3hwM3c
Version Information
Status: Testing
Current Stable Version: V8
Stable Release Date: 2015-09-03
Created 2015-09-03
Last Updated 2015-09-03
Current StatusMTK-64bit_SoCs-v8 .zip will output the partitions that it deems are incorrectly sized in the scatter.txt and will also check the .img/.bins in the SPFlash folder and determine what should go where and will determine if the partition is large enough for the respective .img/.bin
SPFlash-v1.zip will flash the entire contents of /sdcard/SPFlash folder
SPFlash-v3.zip allows selection of files /sdcard/SPFlash folder to install and has a backup option
Improvements NeededFor SPFlash-v2 will add a basic menu select option for what you want to flash...
In future versions will add backup option and partition resize
Will start to look at resize...
Derivative Work - using scatt and part from #1
ScatterfixGenerating a fixed scatter from a 'broken one'
Code:
[size=1]#!/sbin/sh
ldr=`pwd`
scatterfix(){
scatt \${b} \${c} \${d}
part \${p} \${q} \${r}
scttrbfr=`cat "${scatterloc:-$ldr}/scatter.txt"`
while IFS=" " read -r a b c && read -r d e f <&3; do
if [ $a = $d ]; then
if [[ ! ${b} = "DONT_USE" && ${b} != ${e} ]]; then
scttrafter="${scttrbfr//${b}/${e}}"
scttrbfr=`echo "${scttrafter}"`
fi
if [[ ! ${c} = "DONT_USE" && ${c} != ${f} ]]; then
scttrafter="${scttrbfr//${c}/${f}}"
scttrbfr=`echo "${scttrafter}"`
fi
fi
echo "${scttrbfr}" > ${scatterloc:-$ldr}/scatter-new.txt
done </tmp/scatter 3</tmp/parted-new
}
scatterfix
diff ${scatterloc:-$ldr}/scatter.txt ${scatterloc:-$ldr}/scatter-new.txt[/size]
Problems to fixThe code will change any hex value deemed wrong to a new calculated value - there is a chance that 4 values are the same but only one/two are wrong - to fix will need to add a loop through scatterfix until the scatter-new.txt generated is actually correct.Resize Userdata/IntsdMore of a precursor - bugs fixed and maintained by @odigitech
Thread located here
Some Dev. QuestionsBefore adding the resizing partitions (Firmware Upgrade) option:
1. Is the preloader header custom or generic; and does it change when flashing the proloader?
2. Is there an actual function to the BPLGU/APDB files other than some sort of device/system check?
For v7 trying to add a backup + make installable zip option:
Have done it with basic dd backups; would prefer to use sparse/simg2img but simgimg can't seem to use zipped .img's; have looked into using dat/sdat2img but that would require getting python to run in recovery (unless I'm mistaken).
Have added the simplistic option as v7...
odigitech said:
@HypoTurtle I have made a modified version of MTKsplit with more human-friendly names, its in my Drive folder, if it's any use.
Click to expand...
Click to collapse
Thanks, I have updated mine to support non-MTK header-ed boot/recovery.imgs -- can't hurt to make it human readable I suppose.
MTKsplit will be used in the next uploaded version (v8) in the form of a simplistic porting tool...
Should be uploaded on Monday/Tuesday
odigitech said:
You made it work for non-MTK also? Nice one, is it on your Drive?
Sent from my thl 2015 using XDA Free mobile app
Click to expand...
Click to collapse
Should be... but I'll update it with the human-readable version now.
It's not vigorously tested; and not as robust as the (un)mkbootimg binaries out there but it seems to do the job.
@HypoTurtle: on my Jiayu s3, the Germans have been working on android 5.1.1 for it and so far it is great. I installed beta 3 and the next day they released beta 4. Rather then getting out the laptop, I thought I'd use your script, so I got the files needed, I got your script and set it up as the instructions. But when I ran the script, it didn't find the system.img file, and didn't give it to me as an option. I verified that the file was there on disk, but I was never given a check box to select it for flashing. Any logs I can send you to try and figure out why?
Sent from my KFTHWI using XDA Premium 4 mobile app
AlexZap said:
@HypoTurtle: on my Jiayu s3, the Germans have been working on android 5.1.1 for it and so far it is great. I installed beta 3 and the next day they released beta 4. Rather then getting out the laptop, I thought I'd use your script, so I got the files needed, I got your script and set it up as the instructions. But when I ran the script, it didn't find the system.img file, and didn't give it to me as an option. I verified that the file was there on disk, but I was never given a check box to select it for flashing. Any logs I can send you to try and figure out why?
Sent from my KFTHWI using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Is it just the system.img that doesn't appear? And are you using internal or external SD?
HypoTurtle said:
Is it just the system.img that doesn't appear? And are you using internal or external SD?
Click to expand...
Click to collapse
Just system.img, and external_sd
Sent from my KFTHWI using XDA Premium 4 mobile app
AlexZap said:
Just system.img, and external_sd
Sent from my KFTHWI using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Can you post the scatter; the menu items are just an existence check.
[ if *.img/*.bin from scatter exists in SPFlash folder then you are given the option to flash it ]
(Just noticed that it will stall if you try and install and there are no valid img/bin files present)
HypoTurtle said:
Can you post the scatter; the menu items are just an existence check.
[ if *.img/*.bin from scatter exists in SPFlash folder then you are given the option to flash it ]
(Just noticed that it will stall if you try and install and there are no valid img/bin files present)
Click to expand...
Click to collapse
Screenshot of the folder, and the scatter. I checked it and it looked fine.
AlexZap said:
Screenshot of the folder, and the scatter. I checked it and it looked fine.
Click to expand...
Click to collapse
Ah yes - this problem is caused by the amount of items shown - I have it set to show 3, 5 or 12. It will only show 12 (more than 5) if there are 12 things to flash. From your screenshot you have 7 items to be flashed (trustzone gets flashed twice), so you will miss two items - the second flash of trustzone.bin and system.img.
Hope that makes sense; I can alter it to work with 6+; but you should be able to adjust it to work as described above. the reason I did it this way was that otherwise it would look a bit messy - I suppose I could add a 7 option.
HypoTurtle said:
Ah yes - this problem is caused by the amount of items shown - I have it set to show 3, 5 or 12. It will only show 12 (more than 5) if there are 12 things to flash. From your screenshot you have 7 items to be flashed (trustzone gets flashed twice), so you will miss two items - the second flash of trustzone.bin and system.img.
Hope that makes sense; I can alter it to work with 6+; but you should be able to adjust it to work as described above. the reason I did it this way was that otherwise it would look a bit messy - I suppose I could add a 7 option.
Click to expand...
Click to collapse
Ahhh... Not a. Problem then. I don't really need to flash anything besides system and boot. I just included the rest for completness. I'll take one out and let you know how it goes.
On a side note, any reason for these (3, 5, and 12)? An not just everything that is there?
Sent from my JY-S3 using XDA Premium 4 mobile app
HypoTurtle said:
Some Dev. QuestionsBefore adding the resizing partitions (Firmware Upgrade) option:
Q1. Is the preloader header custom or generic; and does it change when flashing the proloader?
Q2. Is there an actual function to the BPLGU/APDB files other than some sort of device/system check?
Click to expand...
Click to collapse
A1 - Generic, MTK preloader has been the same since armv7 to armv8. Yes, dd backup copy needs to be clean up of the header & footer, more info then checkout with AlexZap... :good:
A2 - Not all MTK firmware include it, it contains the IMEI refer to here for more info or a single link that explained everything... :good:
AlexZap said:
Ahhh... Not a. Problem then. I don't really need to flash anything besides system and boot. I just included the rest for completness. I'll take one out and let you know how it goes.
On a side note, any reason for these (3, 5, and 12)? An not just everything that is there?
Sent from my JY-S3 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Not sure if you missed the edit. It was more for cosmetic reasons - I could have had say 12 files being displayed but if there's only one file to flash you would have a screen with a lot of blank entries. 3, 5 and 12 seemed the most appropriate without going down the route of creating a menu for all possible entries.
3 being typical install (system/boot and perhaps blank cache/userdata to wipe); 5 as 3 but with custom etc.
I figured that anyone with more than 5 flashable items in there would have dumped the entire SPFlash ROM which I calculated as ~12 items.
yuweng said:
A1 - Generic, MTK preloader has been the same since armv7 to armv8. Yes, dd backup copy needs to be clean up of the header & footer, more info then checkout with AlexZap... :good:
A2 - Not all MTK firmware include it, it contains the IMEI refer to here for more info or a single link that explained everything... :good:
Click to expand...
Click to collapse
A2. I don't thing it contains the IMEI - but it is the database that the IMEI is coded against; I'm not aware of any devices (other than the P6000) suggesting that you recode the IMEI on an upgrade from KK to LP so there is probably not an issue here.
i never use it myself, typically MDRT is able to recover it on mine, feedbacks from fellow XDA member is that, that is the only way that they manage to recover IMEI on their MTK...
On 2nd thought, BTW, i'm using intel nowadays :laugh: IMEI & calibration info is at a hidden partition, same as Samsung & Qualcomm devices that reside at /efs partition, how did MTK IMEI survive Factory Reset since it is at /data/nvram, i wonder, never really thought about it...
yuweng said:
i never use it myself, typically MDRT is able to recover it on mine, feedbacks from fellow XDA member is that, that is the only way that they manage to recover IMEI on their MTK...
On 2nd thought, BTW, i'm using intel nowadays :laugh: IMEI & calibration info is at a hidden partition, same as Samsung & Qualcomm devices that reside at /efs partition, how did MTK IMEI survive Factory Reset since it is at /data/nvram, i wonder, never really thought about it...
Click to expand...
Click to collapse
On the 64bits at least it is also on a hidden partition (nvram) - and it just gets copied to /data/nvram or something (ie. its not mounted but it's files are there). The DB files etc are present in /system as well as in the full SPFlash ROM so I guess things like MTKEng and apps like chamelephon use that when setting/'fixing' the IMEI.
What are the file formats used by intel stock ROMS? This tool isn't really MTK dependant - it's GPT partition dependant (with a scatter for validity check- I'll post a bear minimum of what a 'scatter.txt' needs to have).
Anyway v8 added - so that files to flash aren't hidden (max. 12 files).
Hmm, further digging seems MTK IMEI is at /dev/nvram, same thing happening on intel, users just never spell out everything, they use the format/ erase flash/ emmc that wipes out the IMEI partition but never tell...
i think on the X3, its not possible as its NOT an Android image file but proprietary fls file which they got it when they acquire infineon i think...
Manual fastboot/ dd backup/ restore & you'll end up with a brick device, ATM, no custom recoveries that boot on the x3, i haven't figure out how to repack its recovery that has three separate different region that requires three proprietary download file that packs it together into a fls file & only their FlashTool_E2 is able to download it correctly...
Can't really understand infineon/ intel for developing such cheap device but with such high end software tools...
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
And they look like this:
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
Nice job dude! just a the quick recommendation: I would suggest that you put your code on gitlab or GitHub so it will become easier for others to contribute
Sent from my OnePlus 6T using XDA Labs
Hi. I'm trying to use this tool but I don't know how to use it. I followed the instructions and downloaded Python. but none of the other steps are working for me. I have my backup on my PC and am trying to extract my files into normal formats as I wish to move away from the LG platform. Thank you.
---------- Post added at 07:20 AM ---------- Previous post was at 06:57 AM ----------
Nevermind, I found a work around.
For anyone else in the future wondering: If you select backup with the app on the phone and backup to the internal memory, it will create .pdf files of all text/images in internal storage>>Quickmemo+. This doesn't help to retrieve the audio or video recordings, but at least that way you can retrieve your text files/images.
Tried script on old backup, failed with error.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
...
[/CODE]
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
C:\Temp\LG G4\Backup>python extract.py LGBackup_190218.lbf
[+] Backup size: 597864605
Parsing...
Reading header
[*] Header start offset: 597792768
[*] Header length: 71824
[+] Header read OK
Reading header (new)
[*] Header start offset: 7021235167904623918
Traceback (most recent call last):
File "extract.py", line 125, in <module>
root = readHeader(True)
File "extract.py", line 99, in readHeader
size = getBackupInfoSize(isNew)
File "extract.py", line 88, in getBackupInfoSize
raise Exception("Invalid header length.")
Exception: Invalid header length.
C:\Temp\LG G4\Backup>
Click to expand...
Click to collapse
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Ninja_Toad said:
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Click to expand...
Click to collapse
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Files extracted but...
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
serlal said:
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
Click to expand...
Click to collapse
Yes I have exactly same issue as you have. All exported files cannot be read.
Hello @tking2000 and @serlal, this script was written based on versions that are available to me. There are two possibilities of what is happening:
1) The file was badly corruped, however the old header stayed itact. (This is the likely case, if you are trying this tool because your phone refused to restore the backup)
2) The file was made by version that does something differently and the script doesn't account for it.
In the first case there is nothing anyone can do (short of trying some corrupted file recovery software hoping the corruption is only minor)
In the second case, you can try sending me a PM with following information, so I can have a look and confirm whether this is truly the case (and improve the script)
1) The script's output
2a) The <Version> and <Attr Name="settingVersionName"> from the <Common> part of the header
2b) If you aren't concerned about privacy or it is just easier for you: just send the whole header file
3) The version of the com.lge.bnr app (LG Mobile Switch); this is not necessary, but may help me
Feel free to censor anything you are sending with [CENSORED] (like your email or filenames)
I have no experience with python, but I have one of these lbf files and I'm trying to figure out how to make it work and all I get is couldn't get library pycryptodome. How do I get Python 3.8.3 to get this library?
Multipart backups
Hello everyone,
I just finished an update, that should enable the tool to extract backups that have multiple files.
If you received "Exception: Invalid header length." in the past and your backup has multiple files, try the script now; your backups are likely to extract correctly now.
This is the likely case for: @Ninja_Toad @serlal and @tking2000
This was made possible thanks to @cheesyzombie who sent me the data I asked for.
@kamikazkid, You don't need to know Python to use this tool, the easiest way is to enter the commands in quotes on the github page into the console (To open the console Shift+Right click in the folder with backups and choose "Open command window here").
Just:
Download the zip on the github page (Under "Code" button)
Make sure the extract.py and your backup are in the same folder
Follow the usage, skip the 4th step and replace xxxxxx to match your backup name.
I figured it out, it was something with windows 10 and the version of python installation I used. Microsoft garbaging things up as usual, thanks for the help though. Thanks, I recovered my files from my old phone successfully.
I have no experience withc++, but I have one of these lbf files and I'm trying to figure out how to make it work, it is a great this forum
Is there a way to import the _DB files (contacts, messages, call logs etc.) back to a phone?
I asked before:
https://forum.xda-developers.com/lg-g3/general/restore-backup-lbf-lineage-17-t4172483#post83644281
Thank you so much for this! I was able to extract the Messaging data from an LG G8 ThinQ. Does anybody know the easiest way to view that data on my PC?
Hi, you can follow these steps to extract data fron _db files:
1) Send the _db files like contacts_db, messages_db to any android phone
2) Double tap on the file and open it using File Manager (which is by default on Mi phones)
3) The file will now open as a folder. Continue opening the folders until you reach to the last file.
4) The last file is the database file. It won't open directly. Select the file and extract the file.
5) Now transfer the file to computer and you can now view it using SQLite DB Browser if its a contacts file or you can use any VMG reader if its a messages file.
Hope this helps you.
Hi @Mysak0CZ, just follow your instructions on GitHub but when I run the command on Command Prompt, nothing happens. Just like this:
F:\>python -m pip install pycryptodome
F:\>python extract.py LGBackup-201031.lbf
When I enter nothing happened. Kindly help to advise for this.
Thank you
Problem in powershell
Mysak0CZ said:
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Click to expand...
Click to collapse
Hi, I am trying to extract via your method but in the power shell in sending the command "python extract.py LGBackup_1x0x07.lbf" it does not execute and brings me back the initial path line. Do you have solutions in this regard? Thanks in advance
Ps. I use Win10
Worked so well. I only needed to recover images and audio recordings after realizing that LG backup tool won't restore on other brand phones.
Thank you!!
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
ok I am so lost. And here is the technical part (you don't need to read this, if you just want to extract your data):
that statement would make it appear easy. well the link only takes you to the code, there is no tool and nothing with "new" as header. so ive tried deciphering what to do for hours now and i cant figure npthing out. rooted and flashed my lgv20 and did a backup with lg bridge beforehand. trying to restore and phone connects to computer fine but doesnt regster in lg bridge so that is why i need to extract .lbf file. can someone make this easier?
hello..it ended up successful.but there is no jpeg or mp4 file on DCIM folder..how can i restore them?should i do somthing with the script? i don't know pyton
I try to share my experience about this cheap phone (bought I think for 45€ : was the cheapest of the hypermarket, around 2019).
Here are some specs : https://www.gsmarena.com/wiko_sunny3-9733.php
First of all, this is a SPD (Spreadtrum) based device, not MTK (Mediatek). (Surely, it would have been easier on an MTK Wiko like the Jerry...)
My goal was to get root access and finally try to install a big-tech free system alternative.
I confess, I spent about one month on it. Here are my findings and the final result I could achieve.
Long story short : I could not get root (I'll explain it below). But I could "un-google" it as much as it is possible without breaking anything essential.
Here is the story and it's lessons learned, in a hopefully logical order.
1. Tried all (really all!) available "out of the box" rooting apps without any result.
2. However there is an "allow unlock bootloader" switch in the "developper settings" (once taped a couple of times on the "build" of the system menu...)
there was no way to really "unlock" it using any appliable fastboot command (tried really everything).
3. Magisk (latest or any other) could not patch the boot.img (or recovery.img).
As root access means the ability to get at some point a writable filesystem, and as this is mounted by boot/recovery.img, this is the key process here.
4. So I went to linux to modify them : tried again all dedicated tools to unpack, edit and repack the boot and recovery.img.
mkbootimg/unpacbootimg, abootimg, but it turns out, they don't repack the files in an acceptable way for this system.
Independently from change made or not (in some .rc file inside the ramdisk, initrd), those usual dedicated tools just cannot repack the file correctly, at least for this device.
Lastly, when I tried bootimg.exe (for windows) of "cofface" (https://github.com/cofface/android_bootimg/blob/master/bootimg.exe)
I could find out that it extracted an other file that abootimg and others was not even aware of : dt_image (binary having an SPRD header).
And this (avesome) tool is able to repack it with it.
But now, the new boot.img was 12Mo and not 36Mo as before. Turns out there is a huge empty (00 bytes) overlay, and a vbmeta (AVB) signature, somewhere at a precise place and at the end of the file.
So I completed and patched the file by a hex editor, to make it the same as the original one. (There were also some 2 "minor" diffs at the beginning of the file that I tried every combination with to make the device boot with it. No way.
I believe now, fdl2-sign.bin, one of the two mandatory required files to flash anything on the device (that gets allways flashed first), checks the signature of boot.img (and recovery.img), so a modification of these would need a brand new signature. (Tell me if I'm wrong: I'm not a pro) And I gave up at this point.
5. Before (understanding the above), I tried also by just changing system/vendor to make root tools available :
Mounted on Linux : strangely, when the filesystem was rebuilt by "make_ext4fs" the flashing crashed, but just unmounting it and then "img2simg" to get the android "spars" format, worked fine (despite for ex. the record of the mountpoint inside the file).
I tried to add all the necessary files (su, busybox, etc.) to "system "and "vendor"... retoutching everythig back to original time stamps, etc.etc.
but the loaded system denies access to all "new" files (and also to some others). Then I tried to change some "policies" files in /etc/selinux (like plat_sepolicy.cil), only trying to get how it works (I added some lines about my files taking as example a well authorized binary)... if ever the added binaries could be accessed even on a -ro filesystem. But nothing changed.
All file added or modified, such as a new bootanimation.zip, becomes "access denied" as well, despite adding them to policies files.
Same for some "new" sounds to media folder : they will be listed but not played (so you only get silenced wake-up instead .
6. After that I decided to un "big-tech"(BT) everything and replace as much (BT tracked) functions as possible by "clean" FOSS apps from F-Droid.
And this, at my surprise, I could get it through 100% (I believe).
The idea in short :
1 - make a clean firmware flush (perhaps with already reduced preinstalled apps)
2 - uninstall/deactivate on the device anything you want and can, replace needed default apps (by FOSS equivalent), especially the launcher(wiko app starter).
3 - edit system and vendor (on linux), delete unwanted apps (making according changes on some .xml control files doesn't change anything and only might cause problems: just deleting the packages seems enough here)
4 - then reflash only the modified system and vendor (reboot and see)
Now, for those who (I would like to say "hate" BT enough to accept loosing the shiny comfort they offer, but lets say) want to get rid of preinstalled privacy breaking BT apps, here is the howto : (with explanation for also the novice)
a) First, download the latest firmware update :
Wiko Mobile : Customer Area / Connection.
customer-world.wikomobile.com
b) Launch the app and push the start flushing button (play button). This will unpack the boundled .pac file into a temporary directory (into the app folder's "ImageFiles\_DownloadFilesE10_2C10D_0" : the suffix changes at each startup. Save this folder to somewhere else (because quiting the app will erase it).
c) Now you need to launch a linux OS, (that can of course access the saved rom files) mainly to mount and modify system.img and vendor.img.
I will detail this for the novice.
Basically, open any teminal, then install if its not yet done, the following needed tools :
sudo apt-get install e2fsprogs
sudo apt-get install android-tools-fsutils
to use Midnight Commander which will save you a lot of time, make also a
sudo apt-get install mc
Then "sudo mc".
Once in MC, do Ctrl+o to switch (back and forth) to command line
d) Uncompress the system+vendor image files, mount, modify, then umount and recompress them :
Uncompress by : "simg2img vendor.img vendor-whatever.img" (same with system.img)
Then (create some "sys", "ven" folders) and : "mount system-whateweryoucalledit.img sys -rw" (thats all, same for vendor).
It turns out, you can just easyly erase some apps (but not anything!) and they just won't be installed, or will "disappear" if they were...
You can delete already from system: in "app" and "priv-app" folders any Facebook related app or service, plus Youtube, Chrome, Gmail... Duo, Messages, TTS, Calendar, Maps. From vendor: Photos, Music, Contact (and also Chrome vendor overlays). Normally you could only deactivate them from the device, but that way they won't be present at all.
You can also edit /etc/prop.default, as follows, but honestly, I did not recognized anything really working, except the sys.usb config and mock.location (allowing fake gps position app).
ro.secure=0 ---> these 2 doesn't seem to do anything without a patched boot.img
security.perf_harden=0
ro.adb.secure=1 ---> needed, otherwise you won't get adb access dialog
ro.allow.mock.location=1 ---> allows fake gps app
ro.debuggable=0 ---> if 1: will just crash "developper settings" because of its defaults
persist.sys.usb.config=none ---> you will be free to set it
Do not try to "ro.adb.secure=0" because you just won't get confirmation box for trusted adb connection attempts and they just won't work!
Same, don't be tempted by "ro.debuggable=1" bacause you will not even be able to access "developper options" any more as its defaults will conflict with this setting an it will just crash over and over. I did it, I payed the price to start it over again...
Now, it seems, ro.secure=0 and security.perf_harden=0 does just nothing as well, without being able to modify boot.img first.
Changing eventually "ro.build.type=user" (in system/build.prop or anywhere else) to "eng" or to "userdebug" makes just the flashing operation to crash. (same by patching boot/recovery.img in hex mode (which looked attractive at first sight) but led to flush crash as well, mainly for the vbmeta thing I tried to describe above.
When finished, just "umount sys" and "umount ven"
Then recompress the files by "img2simg vendor-whatever.img vendor.img" (same with system).
(This first amputation and further, could be done perhaps later all at once, but thats how I did. Of course its about to avoid first installations but without breaking the setup process.)
e) Flash the new firmware to the device, replacing system and vendor.img by the modified files :
The modified files shouldn't be bigger than the original ones, at least not bigger than their size stated (in Mb) in the k120.xml (system:1400,vendor:300) but there is no reason anyway as after my experience all added files will become "access denied". (Should they become bigger than that you will have to change these values in k120.xml and re-pac them (using spd research tool, that will update k120.xml) before using them again, otherwise the flashing will fail.)
So now, get ready for the flashing:
Un mount the back cover of your Wiko Sunny 3, remove for a few seconds the battery, then replace it.
Now, here is something I had to figure out myself because there isn't anywhere a clear description of it, and this is foundamental to be able to flash :
First thing to do is to launch your flashing software, choose the pac file if necessary and push the action button to get ready for the device's connection.
You can wait some time, while the app unpacks the included .pac file. (spd factory/research tools lets you choose your pac file, the one downloaded refers to it only through its .ini file).
So pushing the "start flashing" still nothing happens, the flashing app (unpacks the pac file and) just waits for the devive to connect... This can last forever, don't worry.
Now, to be able to connect de device in service/flashing mode, it should NOT go into charging mode when you connect it.
Thats why, you have to connect the (computer) USB slot by pressing continuosly volume up on the device (after havig removed and reinserted the battery) AND wait until the app detects it and starts the transfer. Do not release the volume-up until it gets at least 3-4%. (Many guides speak about 3 sec or so, the only thing accurate is that the app starts effectively the transfer.) If you release it too quick, the phone goes into charging mode and the COM port used to flash closes, and you will need to repeat the operation.
(And of course you need all required drivers loaded previously. The driver for flashing is called SPRD or SPD Driver R4.20.4201: seems the latest)
If successful, the device gets rebooted.
---------
Here I'd like to ask some pros of XDA : what signal boots the device after flashing? Can it be reproduced without flashing? In other words, can we start/boot an extincted device by USB signal? If yes, how ?
---------
As the first-time setup launches, just decline/skip ewerything, most of all the final wiko/vendor offer (this keeps you safe from vendor commercial services). Just get to the home screen.
See what you have got.
f) Now, setup your anti big-tech privacy free environment. For example, deactivate google play including its service. (Yes, "big-tech haters" don't rely on this ;-)
To know where are the spies, I installed TrackerControl (version 2022.02.10 from F-droid) which gives enough info on that even without root. You will be surprised. There are "feedbacks" to google, to the vendor, and also to Microsoft, even without launching anything, just the wifi on. Even the caller app has trackers...
The best thing is that this (GPL) app lets you know what package causes the leak. You can just write them down, for later deletion.
It turns out, I could delete all of them (mainly from system.img, monted again on Linux) without that anything breaks.
I replaced the caller/dialer, calender, contact, everything, by new default apps. Replaced the Wiko launcher by the Fairphone launcher (from F-Droid).
I installed ungoogled chromium from https://github.com/wchen342/ungoogled-chromium-android/releases (chrome public). (Strangely could not install other browsers!). I replaced Google TTS by "eSpeak NG" (the final config is a little bit tough : have to download "espeak-ng-data" (voices) and push it to the "sdcard" then, slowly, it finds it and it works. (Well, ok, its not the fine google tts thats far the best actually, but its still a tts...) And yes, there is still the keyboard to tap keywords to look for. ;-)
g) When done, take and mount again the system.img file (you flashed) and take out what (following the list of tracker apps found by "TrackerControl", which are mainly (for me) : (for howto, see d) above)
/system/priv-app/phonesky // playstore : com.android.vending
/system/priv-app/GoogleDialerGo // contains trackers!
/system/priv-app/GmsCore // googleplayservices (yes it works without it)
/system/priv-app/WIKOSetupWizard
/system/priv-app/WIKOLauncher // easyly replaced (by Fairphone's 1/2/3)
/system/priv-app/WIKOInstaller
/system/priv-app/AppCloud // wiko appstarter (77 trackers)
/system/priv-app/SearchSpeachService // (google) tracker by definition
/system/priv-app/AntitheftPlugin
can be removed as well (and still some others, but its more wise to stop here, till it still works ;-)
NB : The 3 "Vital-app", probably commercial boudles, must be really present but they can be uninstalled cleanly (weather, smart-assistance, gaming).
Finally, enjoy your non-rooted, but privacy tuned Wiko Sunny 3, and install clean FOSS apps from F-Droid (or from elswhere).
One more thing: Its not because an app is "free and open source" that it won't track you : choose your apps carefully, observing all permissions they ask for.
For example, there isn't much acceptable explanation for a calculator to claim "full network access" or a game to be "launched at startup" or get "system configuration" rights.
And sadly, as we still do not have root access on this device, there isn't much control available on apps, permissions, network or system. But it is possible now to free it from big-tech trackers, as much as possible.
Of course, as usually in these cases, I cannot guarantie anything. It just worked for me like that (reproduced several times), and I think there is no reason that for anybody else it would produce a differet outcome.
Your comments are allways welcome.