[HTC Amaze 4G] KnowledgeBroker:
This is NOT going to contain anything for users to flash - this is for developers(or those who aspire and want to learn). This is a work in progress.

I want to make it clear that XDA nor the mods endorse or approve of this thread

(well, they are allowing me to post it), but this is a concept that may be helpful for multiple reasons.

Please go easy on me, constructive criticism is welcomed, flaming is not. Do not post if you are not adding to the discussion or a developer asking a question. This is something I have been working on for a "rom" I will be putting out in a few days.. I just decided I would share the process, maybe others can help refine it.

Benefits:

If you build for multiple devices you can use this SAME flashable on those other devices and only need to edit the updater-script, prop edits that are device specific, and any system or apk's that are device specific! This could take 5 minutes or less to change AND upload!

It will work on ANY rom(for the same device) as long as you aren't modifying the things that rom specifically needs - and with this method it would be very rare that you would somehow break a rom.

You can still add files/apks, delete files you don't want, modify(rather than replace) the build.prop - technically you could create a flashable that turns stock into CM9 if you wanted to, but only then is a full ROM really needed.

Users can choose the rom they want and add your customizations(the entire community can use your flashable, rather than just a portion!)

It reduces the flashable filesize - rather than 100-400mb your flashable could be 4-20(depending how much you are changing).

It takes MUCH less time to flash, the recovery log will be shorter/easier to read, and it reduces the chance of errors(you are changing less).

Easier to track the changes since the flashable has been reduced to what is NEEDED.

This is an open source community - other devs and even users could look at your flashable and clearly see what you've done, how you've done it, so everyone benefits.

Easier to support - to make changes is EASY, faster zipping, signing, updating, uploading, etc.

You can choose to make it CONFIGURABLE - add #comments in the updater-script, the included build.prop script, or add a readme in the flashable that tells them what they can remove if they don't want it!

I'm quite sure there are MANY more reasons this is beneficial, but I'll leave it to you to decide..

Post 1 - Benefits, explanation, reasoning

Post 2 - Instructions and a soon a flashable example that I will publish

Post 3 = profit?!

First, there are totally different systems out there we can try to get running, CM9, MIUI, etc- this is when the very framework is absolutely different-- otherwise every rom we have RIGHT NOW is just a series of tweaks to the stock(like the leaked ICS) rom. We can argue that people just tweak what is there, or "develop" something new, but nearly everything is building on the concepts of something before- so let's do it right.

What makes a rom unique:

It is easier to keep track of changes(the /system will only have the changes you make, your updater-script will show you other changes, and any scripts you create will show the last changes) - so there shouldn't be "and other stuff I don't remember" in your changelog. This will also assure that there are less potential issues- you are ONLY changing specific things- troubleshooting these things are easier when you aren't including the entire modified flashable.

What you are trying to accomplish:

The main thing that makes a "rom" stand out from any other is the changes to the build.prop - you totally replaced it with something that is your own(or an adapted version hopefully giving proper credit to whoever's tweaks you are using): but they are using your "rom" if they have your build.prop and not someone else's. Everything else is deleting, copying, setting permissions, etc.

The goal: making it more open source

Until you build something totally new(Cm9, miui, etc), you are working with an open source platform, modifying, adding, deleting, scripting. Period. Admit that you are giving the base platform some tweaks, or a "flavor" that others will hopefully prefer.

If you are already developing, you know that with the correct updater-script you can add apks, delete what you don't want, over-write the things you want to replace- this includes theming and everything else you could want.. and usually you would include this in the full base rom, totally pre-configured. With a build.prop that is yours alone.

Conclusion:

Unless you are building an OS from scratch, or modifying it so heavily that it is more yours than it is not, giving the end users these options without wiping is the way to go. If they can flash your mods and then mine and end up with a better final product, how can this go wrong? This is open source, this is android, this is evolution.