[EVO 4G Android Development] flipzmode:
I started a new thread for this release because the other one was just too huge. I also want to apologize for how long this release took. Life is crazy.

Geek For Me is proud to release:

Fresh Evo 1.0.1 for your Sprint Evo 4g

NOTE: Fresh Evo now assumes that you have NAND unlocked (part 2 of rooting). This means you are fully rooted and have write access to /system/ even when you are booted up. If you have not unlocked NAND protection then you should do so before flashing this rom!

If you are coming from Fresh Evo 0.5.3 then just as I promised, no wipe is required. However if you are having problems then of course... wipe.

If you are coming from ANY other rom: do a data wipe! This version 100% requires one. This should however be the last wipe required! It has also been reported that Clockwork Recovery is not wiping sd:ext properly. So if you do a data wipe (data, dalvik, cache, and sd:ext) and are still getting FC's or boot loops then you need to flash Amon's recovery and use it instead. In order to flash this rom you need to be rooted (unrevoked method doesn't count as root) to flash this. How To: Root Your Sprint Evo with NAND unlocked. Always make a nandroid backup, I can't be held responsible if something breaks, etc, etc.

Expect 1 loop at the very first boot! This is a side effect of the fixed vanilla lock. The very first time you boot up the phone it will load the lockscreen and then boot loop one time and then come up. If it continues to loop then see above.

Go here to see all reported bugs: http://link.geekfor.me/freshevobugs -- if you are having a problem then check that page first, and read these release notes in their entirety!

Base: RUU_Supersonic_1.47.651.1 -- NEW!

Standard Fresh Evo Features:

Fresh Updater! Check the How To for information on setting it up and using it. Thanks to cyanogen and firefart as it's based on CMUpdater. It is built off of R657 which is the newest commit.

270 degree auto-rotation (you can turn the phone to the right or the left for landscape) -- Thanks to Optedoblivion for pointing me in the right direction

Fully fixed vanilla lock screen -- see screen shots. Use Fresh Updater to grab one of the vanilla patches to enable it. HTC's lock is enabled by default.

Landscape rosie (disabled by default!) -- see screen shots to see the issues with this. It is functional however it is definitely a hack. You will see some issues with using it. It doesn't look pretty, but it does work! Thanks to jschisurf for pointing me in the right direction on this one. NOTE: I have landscape rosie disabled by default! If you want to try it out then grab one of the patches in Fresh Updater to enable it. See the Fresh Updater How To for help with that.

Landscape settings.apk -- no problems here. Works fine.

12 new Rosie widgets. 7 that are available for our phone and 5 that aren't. :)

Profiles, ringtone, battery, call mom, coin flip, daily challenge, dice, notes, quick record, tasks, tip calculator, and today in history.

These are made by HTC and will only work in Rosie.

Wifi tether (free wireless 3g/4g tether)

Stock files have been resigned. This should prevent the need for any future wipes (not counting any major software changes by HTC/Sprint).

I have still chosen to NOT include adless browsing in my rom. I used adless browsing in all of my Hero Android 1.5 roms because it actually blocked ads from the browser. In Android 2.1 this functionality stopped working so I stopped including it. It was pointed out to me that while it doesn't block them in the browser, it does block them in apps (background data). The reason I am choosing to not include this is because as a developer myself, I feel that the authors deserve to get paid for what they do if you want to use their app. If you are choosing to use their free ad-driven application then I don't want to contribute to people blocking those ads and preventing the dev from getting paid.

All APK's have been png optimized and zipalign'd

png optimize goes through every APK and losslessly compresses the png (picture) files without causing any type of visual change. This provides a smaller apk file size that loads faster. Each APK has then been zipalign'd. From Android's developer page: zipalign is an archive alignment tool that provides important optimization to Android application (.apk) files. The purpose is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file. Specifically, it causes all uncompressed data within the .apk, such as images or raw files, to be aligned on 4-byte boundaries. This allows all portions to be accessed directly with mmap() even if they contain binary data with alignment restrictions. The benefit is a reduction in the amount of RAM consumed when running the application.

While this does free up space on /system/ (as seen below) it is not done to make free space considering we have more than enough. It is done purely for a performance gain. Every day use of the phone will go smoother and stock applications will respond faster. The reason this works is because it has reduced the application file size as much as 50%, so they load in to memory faster and run smoother.

Additionally all applications in /data/ (even ones you downloaded) will be zipalign'd on boot if they need to be.

Not every apk takes png optimization + zip align well. I've done it on enough roms that I think I know which ones cause issues now, but if you are getting FC's on any apps (I can't test them all) then let me know and I'll get it resolved. Thanks!

Apps2sd enabled! Using Darktremor by tkirton.

Apps2sd takes all applications from /data/app and /data/app-private and moves them to a partition on your sdcard. It was originally created for phones that didn't enough enough space on /data/ to store a large number of applications. This has mostly been resolved on the Evo because we have over 400mb of space allocated to /data/. However for some people this isn't enough. Additionally if your apps are stored on your sdcard then you can do a data wipe and they will still be there (albeit settings will be lost, but you won't need to reinstall them).

You do not have to use apps2sd if you don't want to use it. If you just don't format your sdcard with an ext partition (leave it all as fat32 like it is from the factory) then apps2sd will stay turned off.

How to setup apps2sd on Fresh Evo and warnings about apps2sd

Battery optimizations

The stock mms.apk was possibly causing a wake lock. I have swapped it for a different one while I do some testing.

Raised VM kernel dirty page writeback frequency to 15 seconds. This wakes the phone up less often for background VM activity. Every single application in Android is technically running in a VM (virtual machine) so that's why this helps (as recommended by lesswatts.org).

Compcache 0.6.2 / Ramzswap enabled -- Thanks to toastcfh for compiling the modules! Compcache creates a RAM based block device (named ramzswap) which acts as swap disk. Pages swapped to this disk are compressed and stored in memory itself. Compressing pages and keeping them in RAM virtually increases its capacity. This allows more applications to fit in given amount of memory. This will only kick in when the stock memory (which the Evo has plenty of) gets low.

I have tuned the default to be 100mb ramzswap size with 40% swappiness

You can check compcache's use by opening an adb shell and typing: rzscontrol /dev/block/ramzswap0 --stats

ES File Explorer

ROM Manager -- Fresh Evo does show up as an available download in the free version of ROM Manager, so you can use it to update Fresh Evo right through your phone if you want.

Launcher Pro

Wifi Tether (free 3g and 4g wireless tethering)

Qik

Facebook moved to /data/ so that it can be uninstalled

Custom boot screen thanks to wrx4memp!

Added PowerTOP 1.11. From LessWatts.org: Programs can make your [phone] use more power. PowerTOP is a Linux tool that helps you find those programs that are misbehaving while your [phone] is idle. -- Compiled by cyanogen.

To run PowerTOP just open an adb shell and type: "powertop -d". It will scan for 15 seconds and then print out a report.

The first section will show you what % of time your phone spent running at what Mhz. In the screen shot above my phone was asleep so it was at 245Mhz the whole time.

The next section shows wakeups-from-idle per second. 50-80 would be normal. If you are in that range then you don't have a problem.

The next list is the top causes for wakeups. Compare your list to mine (I only showed the top 3).

All the way at the bottom it will have optimizations that can be made to lower power use. These changes can not be made to the rom itself, they must be made to the kernel. While other roms claim they made changes to the kernel, if they are using the stock kernel (if they aren't over-clockable then they are using the stock kernel) then they didn't. While there is a kernel source available to us, I have chosen to continue using the stock kernel until our official source is released by HTC for stability reasons.

I have chosen to NOT include adless browsing in my rom. I used adless browsing in all of my Hero Android 1.5 roms because it actually blocked ads from the browser. In Android 2.1 this functionality stopped working so I stopped including it. It was pointed out to me that while it doesn't block them in the browser, it does block them in apps (background data). The reason I am choosing to not include this is because as a developer myself, I feel that the authors deserve to get paid for what they do if you want to use their app. If you are choosing to use their free ad-driven application then I don't want to contribute to people blocking those ads and preventing the dev from getting paid.

See the official change log for all previous notes and changes! READ IT. It can answer a lot of questions if you are new to Fresh Evo.

Check the Fresh Evo FAQ here before you ask questions!

New screen shots:

Older: screen shots: