android2sd - G1 Android Development

Hi All,
Here is my second contribution to the Android community, android2sd!
I tried to make the installation a bit more straight forward and the readme very verbose.
There is NO going into recovery and wiping of the Android to install this construct. (Of course you can if you want to have a clean slate to build from but it is by your choice only!)
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Execute the script {where ever you installed it}ie:
/data/local/android2sd.sh and follow the instructions.
Included are several of my scripts (updated from the ones in data2sd) and the rules still apply, adjust or remove as you see fit. The readme explains them all.
I have noticed an improvement in speed based on the install, but you can judge for yourself and tweak as you see fit!
The construct uses Overlay Profiles to overlay the Android system and thus any changes to the Android once loaded, are actually done to the overlay profile thus you have like a safe mode which is the untouched Android under the overlay.
Hope you find it useful!
Darkstrumn

Darkstrumn said:
Hi All,
Here is my second contribution to the Android community, android2sd!
I tried to make the installation a bit more straight forward and the readme very verbose.
There is NO going into recovery and wiping of the Android to install this construct. (Of course you can if you want to have a clean slate to build from but it is by your choice only!)
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Execute the script {where ever you installed it}ie:
/data/local/android2sd.sh and follow the instructions.
Included are several of my scripts (updated from the ones in data2sd) and the rules still apply, adjust or remove as you see fit. The readme explains them all.
I have noticed an improvement in speed based on the install, but you can judge for yourself and tweak as you see fit!
The construct uses Overlay Profiles to overlay the Android system and thus any changes to the Android once loaded, are actually done to the overlay profile thus you have like a safe mode which is the untouched Android under the overlay.
Hope you find it useful!
Darkstrumn
Click to expand...
Click to collapse
Damn man. Good work.

sounds interesting, what is this all about?

brilliant?!? I think.
So basically, this is a non-destructive method that enables us to run new roms on the G1 without flashing? Am I reading this right? If so... wow.
edit: or, erm... maybe not... i think i've been up too long. Gonna have to watch this thread to get a better grasp on this. interesting nonetheless.

Rename To RAR
Darkstrumn said:
Remove .zip from filename, then unrar (sorry to zip users, zip was too big) the package and copy the android2sd.sh install script to the Android say /data/local and make executable with something like chmod 0750 and copy the android2sd.img install image to the sdcard. (Detailed instructions are in the readme file.) Once the install is complete, you can delete both install files.
Click to expand...
Click to collapse
very interesting .. at first i failed to see this part as i'm sure many pay skip over the whole "rename to rar" thing - LOL - so this loads profiles from the SD to the phone
for anyone having trouble with the whole "rename" process try this:
http://files.lucidrem.us/jf/android2sd.rar
as i know windows with hidden file extensions does not allow a rename easily

So what exactly does this do? I see install instructions, but no description.

Overlay Profiles...
tr.slate said:
So what exactly does this do? I see install instructions, but no description.
Click to expand...
Click to collapse
Well,
I've worked up the natural progression to this XXX2SD business, and have made an Android2SD construct which can expand the Android similarly to the the previous constructs, but puts /system, /data and /cache on sd.
So let me explain the overlay thing:
An overlay profile is a snapshot of the Android file system, namely /system, /data, and /cache.
The initial profile is called 'android2sd' and is a snapshot of your android at the time of install, plus the file system structure as explained in the readme adding the mnt/ dir structure and additional scripts in bin/ (which you can remove or adjust as you need).
Typically I reckon folks would only have the one profile and under it your original Android. But you can create additional profiles and set them up however you like. The overlay is overlayed on top of the Android file system with any changes or edits to the system affecting the profile and not the Android under.
The effective change is that the /system /data/, cache are moved to the sdcard thus expanding them to however large your sdcp2 is; on a class 6 card also improving access time.
A second benefit is that the underlying Android is safe from alteration and can be booted into like a 'safe mode'. (It can also serve as the base for new profiles, or you can make new profiles from active overlays. These snapshots can serve as a form of backup, but that is a fringe benefit.
It cannot protect the Android from update.zip installs exactly, as those will modify the Android directly, but say you try a theme and it gafs your 'droid...you can reapply the firmware update to clean out the theme, then copy the desired profile back to the Android and restore the Android to the state of the profile. (I would recommend having a 'base' profile of the Android but not using that as an active profile which will thus serve as a backup) Note: To restore the Android as described above, you cannot restore using a profile with 250+ apps in /data as the Android doesn't have the space for it!
Originally I used unionfs for the overlays but it was too slow.
Hope that explains things here; the readme has far more detail.
I've gotta go, but if I see that I've been as clear as mud, I'll try to explain better when I have more time.

Hmm just out of curiosity: What are you using now? Bind mounts?

I got a little bit lost in setup, I am not sure if I had problems because I was using Cyanogens latest or something else but either way Im going back to JF to try this.
I installed it using the "-COMMIT" addition
But when I made it to installing/linking apps things wouldnt link
Maybe I will let a few other people try it first.

More info...
[email protected] said:
Hmm just out of curiosity: What are you using now? Bind mounts?
Click to expand...
Click to collapse
Yes. Originally it was to have a multi profile layered system using unionfs: union0 the ro base snapshot and union1 the rw profile containing the copy-on-write data. But as the tests went on, the unionfs was too slow to use for /data; Android is unforgiving of unresponsiveness and was ANR'ing the apps that didn't respond fast enough.
The faster bind mount means that union1 is now not used and union0 is rw.
The reason I wanted the union0,union1 path was that the union0 could serve as base and various profiles could be layered over any part of the file system granting "Lego" like flexibility in how the user could adjust their a2sdLoader.sh script (the android2sd loader which controls the overlay process).
You could have a pristine base and several "change" profiles that you layered to your liking and could change any sub layer to different effect.
While you still can under this paradigm, it is not as compact.
But the unionfs option is not completely done away with. It can still be used for the above layering but shouldn't be used for that apps and package system.
An example of the layering I'm on about:
The Android 0-layer which the base layer is a snapshot of.
The base layer is pristine (fully configured settings, but minimal apps loaded, maybe a particular base launcher layout and wallpaper).
A change profile containing my apps and package system
A change profile containing a version of etc with reconfigured bluetooth settings.
A change profile with a theme (manually installed, or snapshot to profile and restored to pristine)
Now I could take these 4 profiles and arrange several different setups:
'base' with all apps loaded, themed with custom bluetooth
'base' with all apps loaded, themed with normal bluetooth
'base' with all apps loaded with custom bluetooth
'base' with all apps loaded with normal bluetooth
'base' with all apps loaded
'base' themed with with custom bluetooth
'base' themed with normal bluetooth
'base' with custom bluetooth
'base' with normal bluetooth
...
Those would be set to serve as the ro union0 and the rw union1 which will hold the copy-on-write changes to the overlay (which preserves the sub layers)
You could have several more theme profiles and have a script that randomly chooses one at boot...
You could simply use the overlay to protect a favored configuration. Should anything untoward happen such as accidentally damaging the packages.xml file while experimenting with the system, you could simply delete the change profile, make a new blank change profile and the damaged files are undone.
The things one can do with the overlay concept are limited only by your imagination and need (and if they slow down app processing too much causing ANR's)
It vary well could if done correctly allow one to have multiple roms as profiles and switch them based on the selected profile, but I have yet to experiment on that...I reckon that is my next move! (Note that this path would have a high space cost as the roms are about 40MB zipped!)

brandenk said:
I got a little bit lost in setup, I am not sure if I had problems because I was using Cyanogens latest or something else but either way Im going back to JF to try this.
I installed it using the "-COMMIT" addition
But when I made it to installing/linking apps things wouldnt link
Maybe I will let a few other people try it first.
Click to expand...
Click to collapse
Taken from [Rom] CyanogenMod:http://forum.xda-developers.com/showthread.php?t=518851
"DO NOT RUN ANY OTHER APPS2SD APPLICATIONS ON THIS BUILD. YOU WILL BREAK YOUR SYSTEM. THEY ARE NOT NECESSARY BECAUSE THIS ROM WILL DO A2SD AUTOMATICALLY AND BETTER!"
The android2sd construct pretty much falls into the A2SD category and thus is likely the reason you had issues with the install.
My Android is based on JF 1.51... and thus your mileage will vary based on the rom you are using. I reckon with a rom derived from theh JF roms, the install may work as intended.
As I go into the next construct build process, I will see if I can't make it multi-rom compatible (to support multi-rom profiles) I'm sure it will take some time to do as I would have to use my actual Android to test with, but no worries!
Hope that helps a little. Sorry it's not better news though.

An excellent "misuse" of this concept would be to run ion (picking it for its speed and almost stock nature) with a hero overlay (picked due to known instability as we are still developing it) so that ion would serve as a "safe mode" for when you crash hero.
I have a spare phone if i crash this and a secondary sd for if that gets corrupted. Let me know if you need help testing.

twistedumbrella said:
An excellent "misuse" of this concept would be to run ion (picking it for its speed and almost stock nature) with a hero overlay (picked due to known instability as we are still developing it) so that ion would serve as a "safe mode" for when you crash hero.
Click to expand...
Click to collapse
Interesting thought, and if this could be done, I suppose it would be possible to have bluetooth working in ION while using a Hero overlay?

Request for feedback...
Hi All,
Those who've installed android2sd, how is it going?
Can you give some pros and cons of your experience so I may improve things going forward? (Hopefully no cons exists!)
I know that roms that already make use apps2sd will encounter issues as the apps2sd and android2sd function similarly and thus step on each other. I may be able to detect this condition and adjust for it going forward...we'll see.
Thanks in advance for your input!
Darkstrumn

LucidREM said:
very interesting .. at first i failed to see this part as i'm sure many pay skip over the whole "rename to rar" thing - LOL - so this loads profiles from the SD to the phone
for anyone having trouble with the whole "rename" process try this:
http://files.lucidrem.us/jf/android2sd.rar
as i know windows with hidden file extensions does not allow a rename easily
Click to expand...
Click to collapse
Thanks for putting the rar up, XDA wouldn't take the .rar and I didn't want to signup to a file-share site just yet.
And it being seemingly natural to make windows show file extensions, it didn't cross my mind to make a note about that.
Thanks again!

Darkstrumn said:
Thanks for putting the rar up, XDA wouldn't take the .rar and I didn't want to signup to a file-share site just yet.
And it being seemingly natural to make windows show file extensions, it didn't cross my mind to make a note about that.
Thanks again!
Click to expand...
Click to collapse
How come no one is trying this? It seems to me an excellent idea and would be really cool to boot mutipe roms if someone figures that out. I'm not testing this because I'm using appstosd and didn't want conflicts...but no one else with jf1.51 Rom is testing this idea?
Just curious

so wait a second. let me get this straight ... if I have a class 6 8gb card i might be able to install a hero build without rosie or widgets with the original launcher on the sd card that might actually come sorta, kinda, a little close to a speed that might be bearable? at least for like 5 minutes?

Can this be adapted to install bigger roms such as hero without the dangerspl .
XD
Ill try this with ion later tonight

wow this is beautiful work! now to test it!

Im trying so hard to understand this lol.. Correct me on my errors but from what i read this is my hypothesis on what i think this does..
This is like a apps2sd but with data and that type thing from the build we are using? And you Said this takes snapshots So we can create several profiles of the phone? Like for example have a profile with some apps loaded and another profile with all removed and be able to switch between them at will?

Related

To "ROM" cookers: How to avoid receiving a C&D letter...

The answer is simple: do not include any non-open source apks or code that you have not explicitly received permission to distribute.
Instead, after building your entire update.zip, strip out all the proprietary software. Then, create a .bat and/or .sh file that will perform the following tasks:
- Download the official update.zip from the google.com site.
- Extract the required apks, obexes and jars.
- Add them to the correct locations in your update.zip
- Sign the update.zip (so include signapk.jar with your script)
- Rename the file update.zip
Name your zip as "incomplete-update.zip" (or something of the sort) and include your completer script with the file. Users will run the script and receive a complete update.zip as you had intended to distribute. THAT'S IT! A completely license-abiding way to distribute cooked "roms" without infringing on Google's licenses.
I wish google or HTC would contact me, I would say huh, what, me no speak spanish.... lol
Only if that would actually stop lawyers. God I hate lawyers. If that defense worked MMOGlider.com would still be working.
TheArtiszan said:
Only if that would actually stop lawyers.
Click to expand...
Click to collapse
It would, atleast in this case.
TheArtiszan said:
Only if that would actually stop lawyers. God I hate lawyers. If that defense worked MMOGlider.com would still be working.
Click to expand...
Click to collapse
Glider actually had a detrimental effect to the community, these mods don't. Horrible comparison.
afflaq said:
Glider actually had a detrimental effect to the community, these mods don't. Horrible comparison.
Click to expand...
Click to collapse
One man's detriment is another man's free market. It's a tough question.
Disclaimer: I hated MMOGlider and the people who use it, and wish they would've died in car crashes.
jashsu said:
The answer is simple: do not include any non-open source apks or code that you have not explicitly received permission to distribute.
Instead, after building your entire update.zip, strip out all the proprietary software. Then, create a .bat and/or .sh file that will perform the following tasks:
- Download the official update.zip from the google.com site.
- Extract the required apks, obexes and jars.
- Add them to the correct locations in your update.zip
- Sign the update.zip (so include signapk.jar with your script)
- Rename the file update.zip
Name your zip as "incomplete-update.zip" (or something of the sort) and include your completer script with the file. Users will run the script and receive a complete update.zip as you had intended to distribute. THAT'S IT! A completely license-abiding way to distribute cooked "roms" without infringing on Google's licenses.
Click to expand...
Click to collapse
This would work. But, it seems to me you could also take a similar approach that works like this:
1) Strip the proprietary code out of the update before signing.
2) Sign and distribute the update.
3) People install the update and return to the recovery screen.
4) Drop into terminal mode and run a script that downloads and installs the missing proprietary code in the proper places.
5) Reboot and enjoy.
Any reason that wouldn't work equally well (but be somewhat simpler)?
stellarman said:
This would work. But, it seems to me you could also take a similar approach that works like this:
1) Strip the proprietary code out of the update before signing.
2) Sign and distribute the update.
3) People install the update and return to the recovery screen.
4) Drop into terminal mode and run a script that downloads and installs the missing proprietary code in the proper places.
5) Reboot and enjoy.
Any reason that wouldn't work equally well (but be somewhat simpler)?
Click to expand...
Click to collapse
It doesn't seem like it would be a good idea to boot into the OS with major parts missing (esp stuff like framework.apk). However, if it can be worked around then yes, that would be a method too. Any variation on the theme of "partial update.zip plus files from a locally downloaded official update" would be good.
Is it more work to do this than just to distribute a fully complete (but not license compliant) update.zip? Yes. But it not only protects the cook from being C&D'd, it also helps to legitimize the "ROM" cooking scene.
You are still distributing the the unlicensed files, you are just providing a different way to distribute them. instead of including them directly in your ROM, you are supplying a script that adds them to your ROM.
Man all this is too much.... I might get rid of my G1. Google is always trying to ruin the good things for us. -__-"
jashsu said:
It doesn't seem like it would be a good idea to boot into the OS with major parts missing (esp stuff like framework.apk)
Click to expand...
Click to collapse
The framework.apk is APL and part of the Android source. To see what you get without the Googlebits, just run the emulator.
I think the easiest is to have the updater copy the proprietary bits from the phone to your SD card, perform update, then copy back. then reboot.
jashsu said:
It doesn't seem like it would be a good idea to boot into the OS with major parts missing (esp stuff like framework.apk). However, if it can be worked around then yes, that would be a method too. Any variation on the theme of "partial update.zip plus files from a locally downloaded official update" would be good.
Is it more work to do this than just to distribute a fully complete (but not license compliant) update.zip? Yes. But it not only protects the cook from being C&D'd, it also helps to legitimize the "ROM" cooking scene.
Click to expand...
Click to collapse
Read my post again. I am not suggesting that you try to boot without the parts. I am saying to use the terminal WITHIN Recovery. Do the step of re-adding the proprietary bits BEFORE you leave Recovery and reboot.
Actually people, let's not forget that perhaps Cyanogen had to modify some closed-source apps like Market and Camera on several occasions, right? To avoid crashes due to resource-id changes?
So just downloading older binaries might not always work?
--Tim
I sent a twitter to Cyanogen about this last night. Downloading every time would be slow and a waste of bandwidth. I think you could do it one of two ways.
1) add a script to cm-recovery that is executed with ALT+G the extracts the apks, etc from an official google dist file on the sdcard and copy them to the proper locations.
2) add a script (which does the extraction, etc. from a zip on the sd) someplace into update.zip. cm-recovery looks for that script and if it exists then it will automatically execute after the normal update routine is complete
3) a combination where the script is in update.zip but the users has to hit ALT+G to execute it.
I think #2/#3 would be most flexible because you wouldn't have to change recovery image for different ROMs and all ROM developers could have a custom script in their update.zip to fit their needs.
rewrite those applications if they haven't already been rewritten in one way or another many dialers, a couple marketplaces, youtube, all the apps could be developed just like messenger and browser come on lets just get around google and create the missing apps
kanstin said:
I sent a twitter to Cyanogen about this last night. Downloading every time would be slow and a waste of bandwidth. I think you could do it one of two ways.
1) add a script to cm-recovery that is executed with ALT+G the extracts the apks, etc from an official google dist file on the sdcard and copy them to the proper locations.
2) add a script (which does the extraction, etc. from a zip on the sd) someplace into update.zip. cm-recovery looks for that script and if it exists then it will automatically execute after the normal update routine is complete
3) a combination where the script is in update.zip but the users has to hit ALT+G to execute it.
I think #2/#3 would be most flexible because you wouldn't have to change recovery image for different ROMs and all ROM developers could have a custom script in their update.zip to fit their needs.
Click to expand...
Click to collapse
Anything that requires a user to press more keys is dumb. The problem Google has is that their apps are being redistributed by rom makers.
Lets take a look at how Google circumvents the same restrictions for HTC binaries: http://source.android.com/documentation/building-for-dream
Remember they are advocating circumventing HTC's proprietary licenses by running a script to copy these files. We need to do the same thing, and as long as we are coping the files, using the phone as the SOURCE, the process can be transparent to the user.
Edit:
Also has anyone thought about the fact that HTC proprietary files are being redistributed also? The phones are UNUSABLE without these files.
fauxhawk said:
Anything that requires a user to press more keys is dumb.
Click to expand...
Click to collapse
Yeah, it is dumb. Option #2 runs the script automatically and and Option #3 requires pressing ALT+G. Option #3 is in case the lawyers get really nasty; there is no way they can say that option is in violation because it requires user intervention (pressing ALT+G).
would this approach at distribution impact the optimization and tight fit of the ROM?
This is pretty much the same idea I had last night.
http://forum.xda-developers.com/showthread.php?t=564303
camalot said:
You are still distributing the the unlicensed files, you are just providing a different way to distribute them. instead of including them directly in your ROM, you are supplying a script that adds them to your ROM.
Click to expand...
Click to collapse
But you are not distributing these files. The update.zip you supply has absolutely no intellectual property which you are not entitled to distribute. Even the script, the IPR for it would be with the dev who write it. Now it might well be illegal - and personally I'd debate whether it is, but let's leave that for now - to *RUN* that script. But that's not the dev's concern and everything he supplied would be his own IPR.
Say you had a friend who worked for Google. It's the same as the difference between this friend emailing you a copyrighted MP3, versus you using Google to search for the same MP3 and then clicking on a link that appears. In the latter case Google hasn't distributed anything - they've merely provided the means for you to find the file on-line. YOU are then the one who breaks the law by downloading it. In the former case, it's your friend - and possibly Google as the people who provide the email system - who break the law.
Any dev who provided a script to download what is needed from a place on the internet and extract them from a zip would be very difficult to C&D.

[APP] MyDroid - Progress Report

I am working on an application, akin to Droid Explorer, with my own tweaks and such.
Based on the idea of Droid Explorer, My Droid allows you to update your ROM, install/uninstall applications (APKs), take screen shots, view/interact with a screencast, input commands directly into the android command line, edit the file systems, browse files, etc.
UPDATE: It seems that AndoridSpin has changed their website layout for everything, which has caused me to need to rewrite the way I am parsing their page to be able to get the Download links for the ROMs. I will be working on getting this updated within the next few days.
Currently Working:
Install Single APK
Install Multiple APKs (Batch)
Backup (nandroid/nandroid+ext/bart (including backup name for bart)
Rebooting Phone (into recovery, or plain reboot)
Powering off phone
Partially Working/In Progress:
File and Directory Explorer
AndroidSpin Integration
Currently reads the ROM Database RSS Feed. Working on implementingthat data into the application.
Needed to be done:
Uninstalling APKs
Backing Up APKs (might remove due to 'theft' of paid apps)
Installing custom ROMs
The installation of Custom ROMs is going to be the big hurdle. Not because of the steps involved in the process though, thats fairly easy. But, I am going to include updating from the AndroidSpin ROM Database (as you can see in the menus). That will parse the RSS and Summary feeds of the ROM Datbase, and you can pick/choose the ROM of your liking. It will download it, and do the installation for you, including wiping the appropriate partitions and such.
As I progress further into development, I will also include things such as "screencast", to control your phone completely from the computer, as well as screenshots, debugging, etc.
I am hoping for an initial 'pre-pre-alpha' release shortly
Download: Not Yet Available
Any questions/comments/ideas/etc would be greatly appreciated!
Pre-requisites for installing?
Will there need to be anything installed prior to this package? Will this be a seamless process from download to altering system files? I have had issues with Droid Explorer and Windows Vista, and i could never get adb to work right.
It would be very nice to have an app like this while keeping it simple. For the people who cant figure out multiple installations/drivers and such.
This would (does) require that ADB be installed (with the correct drivers) for your system. ADB should also be in your %PATH% so that the application can utilize it. I will also add an option to specify the path for ADB so that you do not have to put it into your %PATH%
Looks great! If you'd like any help testing, I'd be glad to help.
Also, keep the ability to backup. If some users choose to use it for the wrong reasons, then that's a problem with their own morality. For the rest of us, constantly cooking roms and playing with new builds, being able to easily backup and restore all of our apps is a god-send.
It's nice to have a tool that does everything you need, not just some
Again, looks great so far
Hopefully yours will work with Vista 64bit. I have adb installed and working but Droid Explorer still doesnt work currently.
Joe333x said:
Hopefully yours will work with Vista 64bit. I have adb installed and working but Droid Explorer still doesnt work currently.
Click to expand...
Click to collapse
I do not have a 64 bit machine to test this on, but seeing as it is being written strictly in .Net, and not using any 3rd party libraries, I do not see why it should be an issue.
If anyone knows of any complications that the .Net framework has with any certain functions on a 64 bit system, let me know, so I can attempt to program in appropriate work-arounds for the 64 bit crowd.
[email protected] said:
I have had issues with Droid Explorer and Windows Vista, and i could never get adb to work right.
Click to expand...
Click to collapse
I had these issues as well. My ADB was working just fine in Vista, then I installed Droid Explorer and ADB stopped working, it stopped recognizing that my device was there. Yet, ADB works just fine in my laptop.
It looks interesting I'm waiting for download link
jmhecker said:
I am working on an application, akin to Droid Explorer, with my own tweaks and such.
Features:
snip snip
Backing Up APKs (might remove due to 'theft' of paid apps)
Click to expand...
Click to collapse
if you disable this feature...people will just find another way to steal paid apps(its not the hardest task).... just sayin
i say you keep it
PanPiotr said:
It looks interesting I'm waiting for download link
Click to expand...
Click to collapse
That might be a while. I have a long way to go to even consider an alpha release, heh.
jamezelle said:
if you disable this feature...people will just find another way to steal paid apps(its not the hardest task).... just sayin
i say you keep it
Click to expand...
Click to collapse
Okay, y'all twisted my arm, I'll add that feature
Hmmm looks pretty promising, wouldnt mind tryin it, n am I the only 1 who thinks this is the wrong section? This should be in the Apps section
i also thought creating such app, i wanted to start working at it these days but it seems someone else already doing it, keep the good works, cheers
AsaSpades said:
Hmmm looks pretty promising, wouldnt mind tryin it, n am I the only 1 who thinks this is the wrong section? This should be in the Apps section
Click to expand...
Click to collapse
No you're not only one, I'm also think this is wrong section.
Just a quick update:
Progress is coming along nicely. A lot of features are implemented as of now, but not enough to constitute an alpha or beta release.
What I am currently working on is the parsing of the AndroidSpin database (using their RSS feed). That progress is coming along great, just a few hiccups.
Any other feature requests besides what I have listed in the OP?
And for those complaining that this is in the wrong section, please clarify as to where you think it should be, so I can be sure that future posts go to there.
Okay, time is coming close for a Beta.
I have finished the AndroidSpin RSS portion. I have successfully used my application to browse the ROMs (categorized by phone) from the AndroidSpin RSS feed, selected a rom, downloaded it, copied it to the SD card, rebooted into recovery, performed a nandroid and bart backup, wiped all 3 items(system/dalvik/ext), installed the new ROM, and rebooted, without ever having to touch my phone.
I need to do some code cleanup in that area to streamline the process, but at least I know it works
After I streamline the ROM upgrade process, I am going to work on getting things like screenshots, screencasting, etc, working as they should. Nothing really difficult with any of that, but just time consuming to get it all pieced together properly.
I am hoping for a beta release sometime soon.
any progress?
looks good.. now will this be open source?

[ROM] 6/29/10 | Fresh Evo 0.5.3 | Outdated -- look for Fresh Evo 1.0.1

NOTE: This is old and has been replaced by Fresh Evo 1.0.1. I decided to start a new thread because this one was just too huge.
http://forum.xda-developers.com/showthread.php?t=726090
Click to expand...
Click to collapse
Geek For Me is proud to release:
Fresh Evo 0.5.3 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!
This release was delayed for way too long due to various things out of my control (school, work, other projects, and a crashed hdd last weekend) so I'm happy to finally get it out!
I have been getting asked a lot when I'll integrate the new OTA update. I don't plan on including it until an RUU for it leaks out because it's a much better way to get files than to copy off patched ones. With that said Sprint pulled the update anyways due to it bricking people's phones. Haha. So just be patient and I'll update once it's out. Here's an analogy for you. You install Windows on a computer and then do all the windows updates. You then hunt down the random files that have changed and pull them off that computer, and just copy them over to another computer that hasn't had windows updates done, in an attempt to update it. While that may end up working, it is not nearly as clean as just getting an updated copy of windows that already has the updates on it and reinstalling it. THAT is why I don't plan on putting the OTA in until I have an RUU for it.
Do a data wipe! This version 100% requires one, even if you are coming from Fresh Evo 0.x. 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 go here.
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.32.651.6
Changes from 0.3 to 0.5.3 (0.4 never made it to an official release):
Added Fresh Updater! Check the How To for information on setting it up and using it. This project has been on the back burner for months, and I'm happy to finally have brought it back and finished it up. 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.
802.11N enabled (2.4 ghz only, not 5ghz) -- thanks to chuckhriczko!
Another brand new boot screen! -- thanks to wrx4memp
Updated DarkTremor apps2sd to 2.7 version 3 version 2. Version 3 was moving dalvik-cache to the sdcard even though it was set to not do so. Will upgrade to v3 when it's fixed. Thanks to tkirton!
Fixed wifi tether force close (still using the newest 2.0.5 pre 2)
Stock files have been resigned. This should prevent the need for any future wipes (not counting any major software changes by HTC/Sprint).
Updated launcher pro to 0.6.3
Updated google maps to 4.3.0
Updated estrongs file explorer to 1.4.2.2
Updated rom manager to 2.0.0.2 -- Note as mentioned above that clockwork recovery is currently having issues wiping sd:ext. So if you are having trouble with bootloops or FC's after flashing this rom then you need to use Amon's recovery instead. Additionally because of Fresh Updater, rom manager may not be needed anymore. VOTE BELOW on if you want me to continue including rom manager or not.
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.
Fresh Evo Features:
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.
DOWNLOAD: http://geekfor.me/new-release/fresh-evo-053/
RADIO: 1.39.00.05.31 (make sure you are running the newest radio if you are having problems with 4g)
New screen shots:
Older: screen shots:
Thanks to D/\SH at smartphonejunkie.com for the video! This is from the last version of Fresh Evo but he has some nice things to say.
Any plan to get this into ROM Manager? I find that app to be super convenient.
sph33r said:
Any plan to get this into ROM Manager? I find that app to be super convenient.
Click to expand...
Click to collapse
Yup it will be, I was just waiting to release so that the links worked.
Flashing now. The one thing I missed when leaving the Hero was fresh rom's. Thanks Flipz
flipzmode said:
Yup it will be, I was just waiting to release so that the links worked.
Click to expand...
Click to collapse
Awesome! I'm glad to see developers embracing that software.
Can't wait to try it, it sounds great.
Haha mad people must be downloading this your site is having issues establishing a database connection
Nvm seems fine now
Flashed with no problems. My Evo is Fresh!
Thanks Flipz
flipz just made my weekend!
Can we install directly over Fresh 0.1c Beta without a wipe?
Flashing now. Thanks Flipz
TheBiles said:
Can we install directly over Fresh 0.1c Beta without a wipe?
Click to expand...
Click to collapse
Shouldn't be a problem. And yea, the site is getting murdered. I just enabled super cache.
drbgotenks said:
Flashed with no problems. My Evo is Fresh!
Thanks Flipz
Click to expand...
Click to collapse
Hahahaha... I've been dying to say that!!!
Great to see you here flipz!
The beta version was running fine for me but I am excited to see the public version released.
For anyone not familiar with flipzmode's work, just flash this ROM and you'll be a fan!
omg I SO wish my Evo's battery isn't dead right now.
Awesome stuff. Was a huge fan of the hero roms. Now on to bigger and better things
The rom manager wouldn't let me flash. It didn't force close, it just said failed. To fix, I changed the setting in the very bottom panel to an older version, then changed back to the current one and it worked fine.
Flipz,
I love the idea with moving some of them to /data/app... which got me thinking... why not move almost everything there? That way everyone can uninstall whatever they don't like... or at least moving everything you can, over there to allow everything to still work.
Hey Flipz... I noticed that the Hero kitchen worked to push some of the .apk's back to the Evo. But some return an error..and fail.
For example the HTCFMRadio apk;
Can u clarify, when u say: adb shell mount /sdcardadb shell mount /systemadb shellcp /sdcard/fresh-removed-apks/WHATEVERAPP.apk /system/app
Like would "adb shell mount /sdcardadb shell mount /systemadb shellcp /sdcard/fresh-removed-apks/WHATEVERAPP.apk /system/app be all one command line? Or where should that be broken up at? I tried doing adb shell/mount /sdcard and it said "Usage: mount [-r] [-w] [-o options] [-t type] device directory..
drbgotenks said:
The rom manager wouldn't let me flash. It didn't force close, it just said failed. To fix, I changed the setting in the very bottom panel to an older version, then changed back to the current one and it worked fine.
Click to expand...
Click to collapse
Ditto. Did the the fix you suggested, and it's back in action.
Tenny said:
Flipz,
I love the idea with moving some of them to /data/app... which got me thinking... why not move almost everything there? That way everyone can uninstall whatever they don't like... or at least moving everything you can, over there to allow everything to still work.
Click to expand...
Click to collapse
Damn good idea, a second this if it could be done! It would be the most customizable ROM ever!!!!!

[Q] Roms and patches - is it this easy?

When I first got my G-tab I was baffled by all the instructions and the literally thousands of posts in the forum. Even now, I haven't been able to find exactly how (or why) I should update my kernel. That said, I have TNT Lite running and I love my g-tab. Exploring the possible uses and utilities on it provides hours of fun. Now - here is my question. I stumbled on some instructions for installing the ROM and I have used those same instructions to install several patches to the Rom. I see all this commentary on Clockwork, side loading, etc. and I wonder if I am missing something. Today I just installed the .25 patch for TNT-Lite. I downloaded the rar file, unzipped it on my PC to get the Recovery folder and the update.zip file. I plugged the g-tab into the pc and switched it to usb mode. Then I moved the old recover folder and update.zip to a folder (cautious me) and put the new ones in the root. I disconnected the usb and started the g-tab in recovery mode (holding the power and volume+ key. It rebooted, applied the patch and I was done. That seems simple enough. It would seem that this would work for switching roms, applying patches and probably even upgrading the kernel (If I knew where it was and why I should do it). Am I missing something? Everything seems to work.
Sounds like you got the basics ok.
The real main reason to update the kernal as i see it is to add things like driver support for devices like gps and g3, so on, also minor fixs. If your not using your gtab for anything like this you maybe happy to stay stock. But if you like myself like to use your gtab to surf with g3 or as a sweet gps, then thats what the kernal updates allow. Im sure others can correct me if ive got anything wrong or add to what ive said.
You got the basic steps right, but installing ClockWorkMod Recovery has a lot of benefits.
First, built in backup and recovery will save your skin if the gTab get "cranky".
Second, installing ROMs and/or updates saves you a few steps. From "tar" files (TnT-lite), extract the update.zip file to a folder (I created a folder named "xda", just an example) and name it after the version of ROM/update.
CWM will flash "*.zip" file. This way you can keep multiple ROMs/updates on the card and switch between them.
CWM lets you clear cache, wipe Data partition, clear Dalvik-cache (use caution there), fix permissions and so much more! It is a great tool.
Sent from my gTablet-TnT-Lite-4.2.5 using TapatalkPro
So now we peel back another layer
OK so now the question of multiple roms comes up. I am not clear about the role of the rom - can I switch roms and keep all of my apps and data intact? I'm thinking like changing style sheets on a web page - presentation is different but the underlying data is still the same? Is it that easy?
And... if I am doing that perhaps I need to "clear cache" or "wipe data partition" but although I like to investigate new things I'm not willing to just walk up and push the big red button without knowing what it is for. So why would I "clear" or "wipe" things?
I get the impression that I could switch between ROMs just like switching between browsers on a pc - today Chrome, tomorrow, Firefox and never Internet Exploder... Is that correct? It took me quite a while to get the market working and it still doesn't work optimally but I'd hate to undo all the work I've done getting the g-tab humming along by switching roms. Can I?
So - anyone care to expound on the structure and how it all hooks together? What parts can be swapped out and what parts form the foundation? I'd hate to brick the little guy in my ignorance.
One final note if you know and you answer - where did YOU learn about this. Is there a book somewhere to read?
Thanks again for sharing your knowledge.
The Need for A Wiki
I'm in the same boat as enigma. I'm not even sure what ROM is an acronym for, though I think it means operating system. A wiki would be a big help for many people. I bet people would be glad to contribute.
Well, I don't know about Android book, especially about "hacking android book" , but this (and others) forum has plenty of reading material and guides. Not to mention people (a lot more knowledgeable and experienced than me) who will offer advice and lend a hand. And Google search comes in handy too.
Switching ROMs is almost like switching the OS, or a flavor of. Very much like switching between Linux distributions; the base OS is the same, but the overlay changes the user experience. Some things do change deep down inside, that's why is advisable to clear data.
Android, like Linux which it is based on, uses separate partitions for different parts of the OS, like boot, recovery, data, cache and user data. Plenty of write ups and discussions on the web on that.
So when flashing a ROM, you'll rewrite boot and system. Your user apps and data/preferences pertaining to those apps are stored in data partition, and since you are changing the 'OS', the apps need to be recompiled for it. Backup apps, like Titanium Backup, come extremely handy here: backup and restore apps AND appdata with a few clicks.
Backups are stored on sdcard, which is a lot like Linux /home directory, and do not get wiped during flash. Also the CWM (sometimes called Nandroid) backups are also stored there. A backup-of-the-backup is always a good habit (copy of /sdcard to your PC for safekeep).
This is just a quick rundown, hopefully that answered some of the questions.
There is a world of information available out there in "ether-world", Google is your friend.
[EDIT]:
Some links:
http://android-dls.com/wiki/index.php?title=Main_Page
http://lifehacker.com/#!5596108/how-to-choose-the-right-android-rom-for-you
and of course:
http://forum.xda-developers.com/forumdisplay.php?f=841
(use the search on top of the screen)
Sent from my gTablet-TnT-Lite-4.2.5 using TapatalkPro
Doesn't my sticky on how to flash the roms help at all? I can try to make it clearer if you have suggestions.
http://forum.xda-developers.com/showthread.php?t=892090
TeamSpeed said:
Doesn't my sticky on how to flash the roms help at all? I can try to make it clearer if you have suggestions.
http://forum.xda-developers.com/showthread.php?t=892090
Click to expand...
Click to collapse
Yes, your Sticky is as clear as Florida sky.
I just installed Thumb Keyboard on my gTab last night and I guess I got carried away getting used to it!
Yes, I have found some very good step by steps (reflashed to vegan after reading that one). Step by steps are great but I 'd like to understand why I'm doing it. The market fix...I can follow the steps and it works but why? I wish I had time to research all these things but there are so many forums,so many posts to read! The explanation that did surface in this thread was great though. Thanks. I'll keep asking questions. There are a lot of smart people out there!

Marshmallow & Nougat (AOSP/CM/Lineage) for Nook HD/HD+ (& Tablet)

This thread, and Marshmallow/Nougat porting in general, are a continuation of the previous KitKat and Lollipop development; the general installation steps are more or less the same. If you need a very detailed guide, PeteInSequim's is a good resource, especially if moving from stock. Read/search through the previous threads for any missing information (CM12.1 OP). That being said, I'm uploading personal builds of AOSP 6.0/7.1, CM 13.0/14.1, TWRP, etc, here.
Some of the important device-specific changes from KitKat/CM11 are described in Hashcode's thread. The goal is to remain fairly close to CM or AOSP upstream, and integrate whatever fixes and enhancements in unified device trees. More progress information will be added here gradually, as I have time. A lot of useful discussion happened on the previous CM11, CM12.[01] threads, and the status of things is available to anyone willing to search. I am not a developer, mostly a hobbyist, and the usual disclaimers apply.
AOSP vs CM
Initially, AOSP builds happened out of curiosity, but also necessity, since CM13 needs some time to stabilize. As expected, an AOSP ROM is a lot more barebones than CM, and there are pros and cons for each flavor. Now that initial porting is done following the previous philosophy of reusing and common-izing the device trees, it seems feasible to maintain both AOSP and CM ROMs (whenever 13 is usable), although nothing is promised.
In truth, the current builds are more accurately described as AOSP-ish; at the very least, a few core components need to be modified for our HALs, proprietary blobs, etc. On top of that, I've been adding features and fixes that seemed essential to me. Still, major differences remain compared to CM, and before people deem them as bugs, here are a few:
Wake with Home button: not an AOSP feature; I took the CM code to make it work in these builds.
The Advanced reboot menu: also a custom feature; may be ported at some point.
Mounting exFAT or NTFS media: not AOSP-supported filesystems, but a priority for me.
BusyBox was a CM extra, but I'm including it starting with the November 8th builds.
Etc, etc.
Because we have a reasonably flexible build system, other ROM flavors could happen in the future. A custom ROM like CM is actually easier to maintain than AOSP given all the fixes and enhancements that need separate maintenance with the latter.
The major difference with the first November builds is having SELinux enabled (albeit Permissive). It had to be kept completely disabled during the initial porting, due to a kernel bug/missing feature that took more than a week to track down. Thus, logs contain lots of AVC denials now, as sepolicy has not been fully updated for MM; no need to report or worry about these yet.
On a personal note, posting on my threads is pretty tricky business... My builds were never intended for general consumption, but rather a way to move porting and development forward, and I often debate only keeping the GitHub repositories for people to build themselves. Obviously, that would upset hundreds of people at this point, so I make an effort to upload reasonably bug-free builds, as well as help even with trivial non-problems whenever I can. Nevertheless, low quality, or badly written posts (and I don't mean bad English) are a sure way to get ignored, and my memory is pretty long term Basically, I won't police content here, but I also don't want to deal with the the kind of stupidity and entitlement so prevalent in real life.
In conclusion, no need to thank (unless you really want to), or ask about donating, etc, but do reassess the limits of your current understanding before making bold claims, as I do too. Nothing worse than having to fix a trail of misinformation... Also, comparisons to other people's work (unless constructive), complains about the state of things, or simply starting with "no offense" and such, will make your problem much less likely to be solved by me.
XDA:DevDB Information
AOSP 6.0/7.1; CM 13.0/14.1, ROM for the Barnes & Noble Nook HD, HD
Contributors
amaces, Hashcode, verygreen
Source Code: https://github.com/airend/android
ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.0.x
Version Information
Status: Nightly
Created 2015-11-02
Last Updated 2018-07-29
GApps & Partitioning Info
With unusual issues, especially if connected to Play Services, I recommend testing the ROMs without GApps before reporting bugs.
Currently, pico Open GApps should work on all AOSP, CM, or Lineage builds (M & N), although initial flashing should to be done before first boot (wiped data). With CM/Lineage 14, system space is barely enough, yet I still think we're fine with the current partitioning scheme. Changing it can introduce other complications, and haven't found an absolute reason for doing so. Nevertheless, it is possible to alter the partition sizes after installation, and thus increase available system space; @Lanchon prepared a pretty nice guide specifically for the Nook HDs.
About including GApps directly into the ROMs, I had tested this approach using the Open GApps manifests. While things can work better that way, legally, it wouldn't be a good idea to distribute these builds (for the same reasons CM had to stop including them). Also, I think there are a few people who wan't nothing to do with Google's proprietary services, so a likely deal breaker for them. We'll have to wait for the established packagers to decide how to deal with the MM changes, although my manifests are available, and one can include anything in personal builds.
Manifests & GitHub Branches
For people making their own builds, the customized manifests including my forked branches, and other changes, are kept more or less up to date at github.com/airend/android. There are currently three main branch pairs: cm-12/lolli, cm-13/marsh, and cm-14/nougat, the latter two being most updated. As the name implies, these manifests are based (and actually constantly rebased) on the corresponding upstream branch, either AOSP or CM/Lineage. Theoretically, once these manifests are stable, there is no need for local additions, but corrections might be needed nonetheless.
No need to repo init more than once, unless you're switching manifest branches (e.g., LP to MM, CM to AOSP, etc); repo sync will pull all manifest changes.
About naming conventions for my branches, I try to reuse as much as possible between CM/Lineage and AOSP, and when that's possible, branches are named lp-12, mm-13, etc. Otherwise, branches are named lolli, marsh, nougat, or cm-1*, depending on their base and specificity.
Upstream Lineage branch names haven't changed from old CM, and no current branch will be renamed here either (despite rebase).
The kernel repo contains additional feature branches named base/[subsystem], on top of Hashcode's last CM12.0 kernel. The main stable kernel is roughly equivalent to merging all these feature branches, although the history is different.
Recovery Information
We do have official TWRP images (https://twrp.me/Devices). While they don't work with CM12.1 anymore (for reasons described in that thread), they should be usable with all current Marshmallow builds.
More up to date eMMC TWRP images are included in the respective device folders. Personally, I've had a good experience with TWRP, and do not plan on looking at other recovery distributions. Now, there have been (very) sporadic reports of broken partition tables, soft-bricked devices, etc, blamed on recovery. Although recovery is usually not the actual culprit, here are some ways you can rescue a completely unresponsive device:
The instructions below are generic, and were meant for CWM. TWRP has all these image flashing features in the GUI, so CLI/shell is not strictly needed.
It's a good idea to keep a microSD card around, with my external recovery image, or verygreen's.
Once booted off the external recovery, you can easily fix whatever is broken (ADB is your friend here). There's no need to re-install CM11, as re-flashing recovery and/or boot will most likely fix your issue.
Recovery partition: dd if=<path to recovery image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery
Boot partition: dd if=<path to boot/kernel image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/boot
Afterwards, you should at the very least have a working internal recovery. I don't recall any instance where /system and/or /data became corrupted because of recovery, but you can certainly fix them now.
I've never tested this part, but I believe that you may be able to install an eMMC CM12 ZIP with verygreen's external CWM, even if /data and /cache are F2FS (assuming you copied all ZIPs onto the external card). My understanding is that only /dev/block/platform/omap/omap_hsmmc.1/by-name/system (always ext4, mountable by any recovery) is touched during installation, so you may even bypass TWRP completely.
P.S. If you broke you bootloader by flashing the wrong recovery flavor, despite all images being clearly labeled as hummingbird or ovation, well, no sympathy for you… Still, you can bring your device back to life within minutes as described above.
Selected FAQs
Should I use AOSP or CM/Lineage?
Depends entirely upon personal preference, which requires testing, and some amount of research into what makes a ROM different. There are substantial core differences between the two flavors, which are not obvious immediately. If installing for the first time, flip a coin (and avoid builds in experimental, of course).
How do I get root back?
Until recently, some type of SU binary was included with all ROMs (WITH_SU=true on CM/Lineage, or using this repo on AOSP). This was needed because third-party system-less solutions don't work with our quirky bootimages, and system-mode installers have other issues on N. As builds mature, I'm separating the SU backend from main OTAs, roughly like CM/Lineage did. On my Nougat builds, there are currently two system-mode options:
On AOSP, I adapted phh's OSS backend for system-mode install (addonsu-phh-arm.zip). You need the matching manager to control access. Later on, I ported CM/Lineage's AppOps-based SU to AOSP, so that addon works here as well (see next item). These binaries need to be flashed after every ROM update, same as GApps.
On CM/Lineage, you can install their official add-on (addonsu-arm-signed.zip); it will use the baked-in manager, so no extra APK required. Or, you can install phh's SU and manager, like on AOSP. Neither needs to be flashed more than once here given the existing addon.d support.
Why no official CM/Lineage builds since 12.0?
The answer involves both technical complications, and some amount of politics. Getting changes accepted for non-mainstream/deprecated platforms like ours has been an uphill battle. Over time, many OMAP4 improvements have been developed outside CM, formerly by OMAP4-AOSP, now the Unlegacy-Android project. Those common hardware improvements have made it into 13.0/14.1 only recently, due to other people's perseverance. Although we're much closer to upstream Lineage compatibility, the hundreds of device tree, and more than a thousand kernel changes would still need to go through review. Given how long that takes for each item, and occasional opposition from non-OMAP4 reviewers, I decided to allocate my resources towards bettering these devices rather than official status. The downside is that people may feel dependent on my builds, which shouldn't be the case; I constantly rebase and maintain complete manifests, optimized for these devices. All the relevant changes are open and available in public GitHub repositories, which means anyone can submit them/try to work with upstream Lineage. However, for the above reasons, it's unlikely that I will make that effort.
What's the current status of full screen casting, Miracast, HDMI, etc?
Full screen casting to a Chromecast sink (either real, or emulated) works on all current Nougat builds. CM13 builds may have issues there, but AOSP M was fixes. Chrome casting from apps (the preferred way, if available) was never broken. Miracast in AOSP is pretty much legacy tech now. It also requires more hardware support compared to Chromecast-ing, and it probably doesn't work on any recent builds. Fixing HDMI is still a goal; it got broken on our devices after some Marshmallow revision. Until HDMI can be fixed, I disabled it completely to recover its unused VRAM allocation.
Will this (continue to) be based off AOSP, or CM?
belfastraven said:
@amaces, I am currently running with the 11/01 hummingbird build from experimental, which I installed yesterday. It doesn't work as well for me as the 10/29. It is laggier, and for some reason right now, I can't log into from the kindle app. I also note that on rebooting, it will go through the boot cycle more than once, optimizing various apps each time. Of course, since it just numbers the apps, you can't actually tell what it is doing. . I think there are olicy/permission issues since trickster mod can't install busybox into the system partition and, as stated before, system won't boot into to revery, soft boot, or shutdown, without use of power,home keys. Do you wan't logs?
thanks again.
Click to expand...
Click to collapse
On Ovation it is the same: 10/29 is far better than 11/01.
Graphics problems on 11/01: the screen shows some green lines sometimes and it feels laggier.
---------- Post added at 11:42 PM ---------- Previous post was at 11:40 PM ----------
twiztid_ said:
Will this (continue to) be based off AOSP, or CM?
Click to expand...
Click to collapse
I would prefer AOSP: less customization means less resources needed.
...and for Ovation every MB of ram free can be fundamental.
Or maybe both versions
For some happy news, multi-window mode (enable in developer options) seems to work pretty well (on my HD) It's probably even more useful on the HD+ where you have more real estate.
Thank you @amaces for M!
Questions:
Are your repos in a state that I can start trying to build it?
Is this your (local) manifest https://github.com/airend/android/blob/marsh/default.xml
I saw the above manifest and tried to build a couple of days ago and got many errors just updating my local repo. I'm reckoning that the manifest has such a mishmash of projects that I should probably delete my entire repo and download it all again. Is this likely the case?
Again, thanks. I'm so excited!
Things are still busy till probably tomorrow afternoon, but I will add proper replies here, and on the CM12 thread soon. As of now, there must be a few dozen posts I need to go through, plus lots of other updates.
amaces said:
Things are still busy till probably tomorrow afternoon, but I will add proper replies here, and on the CM12 thread soon. As of now, there must be a few dozen posts I need to go through, plus lots of other updates.
Click to expand...
Click to collapse
Is gapps for 6.0 available? If so, which one do you recommend?
js290 said:
Is gapps for 6.0 available? If so, which one do you recommend?
Click to expand...
Click to collapse
OP has only two paragraphs. Try reading it again.
I have 2 HD+ and wanted to dedicate one to Marshmallow. I spent time with this build and it just became too frustrating.
I did find a gapps benzo-gapps-M-20151011-signed-chroma-r3.zip that did get rid of the nag messages with settings in settings-apps. I'll get links if others are interested. AdaWay 2.2 did give some strange messages about BusyBox scripts but it turns out there is a Mars working version of AdaWay, AdAway-release_Build-Oct.09.2015.apk that I haven't tried yet.
Very frustrating not really being able to use the ExtSdcard. Installation of apps is not that simple without using a third party browser.
First efforst here are great. If you look at first efforts on phones, disaster and pre=alpha is what is going on.
And for those of you who, like I, have been looking to find where the external sd carded is mounted if you want to keep it as an external sd card, on 11/1 build ,it is at /mnt/media_rw/FFF9-7EC0 on my HD-I think that that actual hex address part may vary. I was able to manipulate the files on it with the root explorer app. I think other apps will work as well--they just don't know where to find the external sd card... .
Root Explorer lets you set that path.
Also, I was able to enable and use the Sytem UI Tuner setting...
belfastraven said:
And for those of you who, like I, have been looking to find where the external sd carded is mounted if you want to keep it as an external sd card, on 11/1 build ,it is at /mnt/media_rw/FFF9-7EC0
Click to expand...
Click to collapse
Couldn't you use a script to mount(or link?) the folder to its "proper" location at start up?
I thought that's what the system did anyway.
twiztid_ said:
Couldn't you use a script to mount(or link?) the folder to its "proper" location at start up?
I thought that's what the system did anyway.
Click to expand...
Click to collapse
I think the issue is that it's "proper" location for Marshmallow (the system locates the card with no problem) is different from where older apps are looking for it. I'm sure one could add a link or links I was just happy to locate it
sephiroth2k said:
Got a working keyboard by flashing attached, Google Play Services crashes constantly and the screen randomly flashes garbled graphics, then locked up. Not exactly a daily driver, but cool nonetheless!
Click to expand...
Click to collapse
That's a problem with whatever GApps package you flashed; there are many crappy ones floating around. Either way, a clean AOSP installation has none of those issues.
games906 said:
What gapps do I need to use for the 6.0? One was too big, another wouldn't flash, one flashed but all of the Google apps crashed. Help!!
Click to expand...
Click to collapse
Read post #3.
Monfro said:
Other bugs I have found: SD is not recognized, home button is not mapped to wake the device.
AOSP keyboard crashes, but we can flash others. Google Play services crashed in the first minutes...I don't know if it started working well maybe after a silent update or it was not starting again.
Click to expand...
Click to collapse
Read OP about the distinction between AOSP and custom ROMs such as CM. Also, the AOSP keyboard is fine unless you flash GApps (see post #3.)
asakurato said:
It's not for daily use. Performace is quite good, if not better, but there are many bugs, like computer can't recognize both Internal and external sd (in mtp), file managers can't recognize external sd, constant keyboard crashes (you can use any other) and many other which I have forgotten or haven't found yet.
Click to expand...
Click to collapse
Monfro said:
So the only important bug I found is SD card not accessible: only built in file browser can correctly access it.
Click to expand...
Click to collapse
There are significant changes to storage management in Marshmallow, and I suspect those basic AOSP apps were once-again left behind, and are not using the newer APIs.
belfastraven said:
On Hummingbird, same as above re sdcard. Also location services seem not to be working properly. Accuweather, google maps don't seem to be able to access the services even though they have permission.
Click to expand...
Click to collapse
It's probably a missing location provider issue, like we had in the early days of CM12.0 (and which CM fixed). I'll need to track that down.
belfastraven said:
I've noticed a bit of what seems to be a memory management problem... once you have been using several apps for a while, (for me, NYTimes, kindle, Chrome_dev, settings, gmail, e.g. ) apps become rather laggy and you get the application not responding message. I am going to attempt to keep using this as my daily driver, however. Is there a way to do a soft reboot in this rom--previously you could do it from the power menu.
Click to expand...
Click to collapse
Although I haven't noticed that, all is possible; I haven't used my device for more than a few hours before having to work on fixing stuff, followed be reboot. The reboot options you're familiar with were a CM feature as described in the OP, but I plan to adapt their code. Beyond that, soft/reboot/recovery/power off don't seem to work at all, root or no root. It's possible CM was setting those in a legacy fashion for our devices (and even then, they were falling apart as you know).
toplist said:
Reboot to recovery isn't working for me. Currently, I'm running the latest experimental marshmallow build. I've been running op's cm12.1 build even before this thread was created. I didn't have recovery or power off problem like some users until the last cm12.1 10/18 build. When I saw the marshmallow build and decided to try it, that's when I found out that reboot to recovery and complete power off are not working properly. The way I access recovery now is manually pressing power button to shut it off and do power+home to boot to recovery. I tried flashing twrp 2.8.7.4 from amaces's folder and also twrp 2.8.7.0 using flashify. It doesn't fix the problem. I can't access fastboot from computer. When I use adb reboot bootloader command, it loads to cyanoboot and few seconds later shows android boot window. How can I get reboot recovery and power off working again?
Click to expand...
Click to collapse
The devices never had reboot to bootloader or fastboot support, and TWRP doesn't have much to do with reboot/power off within the ROM. Otherwise, read above; currently, if you need to power off, hold the power button for a few seconds to force shutdown.
belfastraven said:
@amaces, I am currently running with the 11/01 hummingbird build from experimental, which I installed yesterday. It doesn't work as well for me as the 10/29. It is laggier, and for some reason right now, I can't log into from the kindle app. I also note that on rebooting, it will go through the boot cycle more than once, optimizing various apps each time. Of course, since it just numbers the apps, you can't actually tell what it is doing. . I think there are olicy/permission issues since trickster mod can't install busybox into the system partition and, as stated before, system won't boot into to revery, soft boot, or shutdown, without use of power,home keys. Do you wan't logs? […] Have trickster mod running now--needed to install busybox through recovery. If there is anything you want looked at, let me know. I note that the system is "idling" a bit warmer than it was onlast Lollipop build--at a little over 30 degrees C. "miscellaneous" is using 22% of battery.
Click to expand...
Click to collapse
Didn't notice new lags on non-GApps install, but again, I must've tested a dozen builds since last week. The only major difference with 11/01 was turning SELinux on (albeit Permissive, see OP), after a week-long bug hunt. In the meantime, the repos jumped to r26 (MDB08M, same as latest Nexus 6P builds), which represents about two months of development upstream, so hopefully the next builds will be better. AOSP doesn't include busybox as you discovered, but you can easily install the package once you have root (Trickster MOD's dev publishes a good installer, so no need to flash stuff in recovery, although that works too).
Logs won't help much at this point since I can see all these issues on my device as well; I'm tackling them sequentially, but all these take a lot of time, so it'll be a while until decent ROMs happen.
Tschumi said:
In the experimental folder are the Marshmallow builds, did you flash over Lollipop? There are still a lot of kinks.
Click to expand...
Click to collapse
Definitely factory reset before installing Marshmallow.
belfastraven said:
no--I had been running the 10/29 Marshmallow--. I know that these are very early, but I think the 10/29 was working better for me. I'm sure some of this is not the rom, but the apps. I do note a lot of avc permission problems in the logs, as well as Choreographer complaining about missed frames..., I am excited that this is running at all.
Click to expand...
Click to collapse
The AVC denial messages finally show up after I fixed SELinux, and Permissive shouldn't negatively impact performance, but yeah, sepolicy needs to be updated for MM soonish. The missing frame issue is troubling, and I'll definitely investigate if it persists into what I deem as stable builds.
Monfro said:
On Ovation it is the same: 10/29 is far better than 11/01. Graphics problems on 11/01: the screen shows some green lines sometimes and it feels laggier […] I would prefer AOSP: less customization means less resources needed. ...and for Ovation every MB of ram free can be fundamental. Or maybe both versions
Click to expand...
Click to collapse
Same as above, and do let me know if these issues happen on a clean GApps-free installation.
twiztid_ said:
Will this (continue to) be based off AOSP, or CM?
Click to expand...
Click to collapse
OP updated with relevant info, but yeah, ideally both will be maintained side-by-side. Of course, CM13 is in huge flux right now.
Zippy Dufus said:
Are your repos in a state that I can start trying to build it?
Is this your (local) manifest https://github.com/airend/android/blob/marsh/default.xml
I saw the above manifest and tried to build a couple of days ago and got many errors just updating my local repo. I'm reckoning that the manifest has such a mishmash of projects that I should probably delete my entire repo and download it all again. Is this likely the case?
Click to expand...
Click to collapse
I've be trying to keep everything on GiHub up-to-date and reasonably stable. As you noticed, I've been crafting a de-bloated manifest that will make it even easier to replicate my builds (details in post #2).
Now, you can repo init on top of the CM12 sources, but you'll need to --force-sync since many repos are overwritten. That would only matter if you made local commits, especially if you didn't upload them, because you'd likely lose them. Better yet, I suggest keeping the CM folder separate, then initialize another one for AOSP with the --reference option. By referencing the CM folder, repo will attempt to reuse common repositories, which is the majority of Git objects. The checkout will still consume space, but the hidden .repo folder will be much smaller. Of course, referencing is not needed if you have enough space. Conversely, if you delete everything (that is including .repo) and initialize anew, you avoid all these issues, but going back will be a hassle.
Otherwise, I'm using a 4.9 EABI for kernel, but Google may insist on 4.8. If that creates issues (it'll be obvious, missing compiler type errors), you can either remove those prebuilts in your local manifest additions plus bring in a 4.9 kernel toolchain, or simply create a symbolic link (ln -s arm-eabi-4.8 arm-eabi-4.9) in platform/prebuilts/gcc/linux-x86/arm.
king200 said:
I have 2 HD+ and wanted to dedicate one to Marshmallow. I spent time with this build and it just became too frustrating. I did find a gapps benzo-gapps-M-20151011-signed-chroma-r3.zip that did get rid of the nag messages with settings in settings-apps. I'll get links if others are interested. AdaWay 2.2 did give some strange messages about BusyBox scripts but it turns out there is a Mars working version of AdaWay, AdAway-release_Build-Oct.09.2015.apk that I haven't tried yet.
Very frustrating not really being able to use the ExtSdcard. Installation of apps is not that simple without using a third party browser.
First efforst here are great. If you look at first efforts on phones, disaster and pre=alpha is what is going on.
Click to expand...
Click to collapse
You gotta read the OP, especially the end of it... But yeah, I'm sure you did your research regarding GApps; the end of October packages were much better, albeit still very flawed (see post #3). AdAway works perfectly once you're rooted, even with versions older than 10/09 in the semiofficial thread, which should've been your first go to. There's no issue with SD card mounting, but you should be aware that fancy filesystems (e.g., exFAT, NTFS) are not supported by AOSP. Also, apps need to use the MM storage APIs. In conclusion, do your testing on a clean slate, before flashing any GApps; all are buggy currently, and that situation has nothing to do with these ROMs.
twiztid_ said:
Couldn't you use a script to mount(or link?) the folder to its "proper" location at start up?
I thought that's what the system did anyway.
Click to expand...
Click to collapse
That won't work well since that path is not constant or universal. I'm sure we'll learn more about these new storage APIs, but I'm only providing the hooks based on the official documentation at: https://source.android.com/devices/storage/config.html#android_6_0.
belfastraven said:
I think the issue is that it's "proper" location for Marshmallow (the system locates the card with no problem) is different from where older apps are looking for it. I'm sure one could add a link or links I was just happy to locate it
Click to expand...
Click to collapse
Has anyone tried BaNKs MM gapps? People seem to be using them on the N4 with MM builds without any issues.
I'm doing much better with the 0129 build than the 1101. The 1101 build is unresponsive. Also, something like opening an SMB tab doesn't work.
I did this to solve the Google Play Services fc http://www.ibtimes.co.uk/android-6-0-marshmallow-gapps-how-fix-google-play-services-force-close-error-1524431
------------------------------------------------------------------------
With aosp_ovation-ota-MRA58K.151029.zip:
Avoided many hangs and reboots. Developer options->background processes limit->3 max has to be reset on each boot.
Green streaks on screen: developer options_>disable HW overlays. Select but after reboot, will reset to off.
Could browse to MicroSD card with Root Explorer, mnt/media_rw/147E-92D1, was not able to set the path for external card to that value.
Was able to set Home to card with Root Browser https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree
Moon Reader could find the card but not see any files in the root folder.
AnTuTu starts test but then closes.
Google Text-tospeech Engine give error messages. Pico TTS works but has to be set to very slow speech rate to be intelligible. Voice search works but, again, difficult to understand.
Kodi ran well. A big battery eater and video intensive.
Use Swype keyboard and freeze Android Keyboard.
Adaway, even the AdAway-release_Build-Oct.09.2015.apk would not install. Placed a working Hosts from another device file in /system/etc and it works fine.
Adb is more reliable with WiFi than cable.
king200 said:
I'm doing much better with the 0129 build than the 1101. The 1101 build is unresponsive. Also, something like opening an SMB tab doesn't work.
I did this to solve the Google Play Services fc http://www.ibtimes.co.uk/android-6-0-marshmallow-gapps-how-fix-google-play-services-force-close-error-1524431
------------------------------------------------------------------------
With aosp_ovation-ota-MRA58K.151029.zip:
Avoided many hangs and reboots. Developer options->background processes limit->3 max has to be reset on each boot.
Green streaks on screen: developer options_>disable HW overlays. Select but after reboot, will reset to off.
Could browse to MicroSD card with Root Explorer, mnt/media_rw/147E-92D1, was not able to set the path for external card to that value.
Was able to set Home to card with Root Browser https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree
Moon Reader could find the card but not see any files in the root folder.
AnTuTu starts test but then closes.
Google Text-tospeech Engine give error messages. Pico TTS works but has to be set to very slow speech rate to be intelligible. Voice search works but, again, difficult to understand.
Kodi ran well. A big battery eater and video intensive.
Use Swype keyboard and freeze Android Keyboard.
Adaway, even the AdAway-release_Build-Oct.09.2015.apk would not install. Placed a working Hosts from another device file in /system/etc and it works fine.
Adb is more reliable with WiFi than cable.
Click to expand...
Click to collapse
On the 11/05 hummingbird rom, rooted, but without gapps or any additional app loaded, I have no sound
or video . Loading a couple of apps from APKs, no location services, Amazon Kindle not responding, same as earlier.
This was a clean flash--wiped system, data, cache, dalvik...
I'll try playing with this a bit more.
belfastraven said:
On the 11/05 hummingbird rom, rooted, but without gapps or any additional app loaded, I have no sound
or video . Loading a couple of apps from APKs, no location services, Amazon Kindle not responding, same as earlier.
This was a clean flash--wiped system, data, cache, dalvik...
Click to expand...
Click to collapse
Hmm, the A/V stuff may be due to the inclusion of media_codecs_ffmpeg.xml, which is present only in CM. Since you're rooted, you could test this by deleting the <Include href="media_codecs_ffmpeg.xml" /> line at the end of /system/etc/media_codecs.xml.
The Amazon Kindle issue is intriguing; do you remember if you had it on the last CM12.1 builds? There could be several reasons, including a heap change that I made about a month ago. Either way, can you describe in more details what happens, and possibly capture a log?
amaces said:
Hmm, the A/V stuff may be due to the inclusion of media_codecs_ffmpeg.xml, which is present only in CM. Since you're rooted, you could test this by deleting the <Include href="media_codecs_ffmpeg.xml" /> line at the end of /system/etc/media_codecs.xml.
The Amazon Kindle issue is intriguing; do you remember if you had it on the last CM12.1 builds? There could be several reasons, including a heap change that I made about a month ago. Either way, can you describe in more details what happens, and possibly capture a log?
Click to expand...
Click to collapse
Deleting the line from /system/etc/media_codecs.xml fixed the sound and video problems.
Amazon definitely was fine on lollipop builds--it may have even worked on 10/29 Marshmallow, but I was so excited about that build I can't remember now It's one of my 3 or 4 most used apps.
What happens is that the application will start and if you are not logged into it already, will allow you to click on "start reading" and will bring up a log in page. Sometimes I have had the page come up, sometimes the application seems to freeze and then quit, sometimes I will get the "xxxx application is not responding..." message, sometimes it appears to restart on its own. I managed to log in once on the 11/01 rom, and then the application would die/freeze/etc when synching content so it never was usable. I could make no sense of the messages in the logs because I'm not experienced enough with this.
thanks for your help.
p.s. I cannot get the "file manager" app root access...

Categories

Resources