Hello, i'm a web developer and have no experience in developing android roms. Anyways, i'm planning to develop a free website which will let any developer create an online kitchen for his rom, where users like me can come and bake rom according to their needs. Now as i don't have any experience with cooking roms, i would like a little help from the developers. Help i am seeking in is, what features a fully customizable kitchen has, how to change the update.zip for the changes, and adding applications to the zip. I have a little bit idea, but want a clear process.
you will get flamed for this
shararti said:
Hello, i'm a web developer and have no experience in developing android roms. Anyways, i'm planning to develop a free website which will let any developer create an online kitchen for his rom, where users like me can come and bake rom according to their needs. Now as i don't have any experience with cooking roms, i would like a little help from the developers. Help i am seeking in is, what features a fully customizable kitchen has, how to change the update.zip for the changes, and adding applications to the zip. I have a little bit idea, but want a clear process.
Click to expand...
Click to collapse
This really is an admirable goal, but you're attempting to bite & chew WAY more than your mouth can handle!!!
You're a web developer, good.
You have no experience in developing android roms, bad.
You want to develop a free kitchen, good.
You have no experience with cooking roms, bad.
You want developers to help you in exchange for a free kitchen for their rom, bad & good.
You don't know how to update the "update.zip" file and re-sign it, bad.
You don't know how to add an APK to the above mentioned "update.zip" file and re-sign it, bad.
You have a little bit of an idea, but want a clearer process, bad.
All of the above noted BAD points, have been discussed, referenced, and linked on these forums countless times shararti.
You really need to search, read, search some more, and apply what you've learned.
I too am a Web Developer/Designer. I've been in the business of creating websites since 1999 (off & on). And the above mentioned project it something I WON'T EVEN DARE ATTEMPT.
Good luck!
I did search, countless times, everywhere. But as lack of my experience with rom development, it was quite confusing. Well I do know signing and adding apk part, and the rest, i agree, i need some help. I'm willing to give my summer to this project and develop this kitchen for the xda community (i'm also willing to give it away to xda). Now if anyone is willing to help me, please pm me.
Actually, it isn't that difficult.
There are quite a few scripts and programs that you could simply employ on your website. I'm sure those developers wouldn't mind
You would have to tier your ROM baking based on the major ROM cores, and the features swappable between flavors of those cores.
It's simply letting the user choose what he wants in his base ROM, pushing the files into the zip, and running the script to sign them.
I'd be glad to guide you in the structure of ROMs, and showing you what can be mixed and matched.
PM me. We'll get started.
Sounds like a very cool idea and I wish you all the best and hope you find some programmers willing to teach you about roms, and you can do the web coding and make your idea a reality.
I'd use it for sure, would be wicked. Imagine going to this web page on your N1 customizing a ROM, building it and then flashing it. All without going near a computer. Sounds unreal!
APrinceAmongMen said:
I'd be glad to guide you in the structure of ROMs, and showing you what can be mixed and matched.
PM me. We'll get started.
Click to expand...
Click to collapse
Perhaps, share the information here once you two have things worked out?!
shararti said:
I did search, countless times, everywhere. But as lack of my experience with rom development, it was quite confusing ...
... I'm willing to give my summer to this project and develop this kitchen for the xda community ...
Click to expand...
Click to collapse
XDA is such a huge resource, full of solutions, bricked devices and lost newbs LOL.
After trolling for a few months, I was ready to flash my first WinMo SmartPhone a few years ago. I haven't used a 'regular phone' ever since.
This would be an ideal summer project. As I said, I'm also a Web Developer.
Hit me up for some theme/template ideas. I do most of my work with Notepad++ and Adobe Fireworks CS4.
Goonish said:
I'd use it for sure, would be wicked. Imagine going to this web page on your N1 customizing a ROM, building it and then flashing it. All without going near a computer. Sounds unreal!
Click to expand...
Click to collapse
hhmm, never thought of that!
You're right ... sounds unreal!
Something the iFans would never be able to attain.
Even better, how about, instead of flashing some large file, only the ones affected by an update are flashed, resulting in a much SMALLER file (thus saving on data usage) and a FASTER flashing (saying on battery life).
shararti said:
Hello, i'm a web developer and have no experience in developing android roms. Anyways, i'm planning to develop a free website which will let any developer create an online kitchen for his rom, where users like me can come and bake rom according to their needs. Now as i don't have any experience with cooking roms, i would like a little help from the developers. Help i am seeking in is, what features a fully customizable kitchen has, how to change the update.zip for the changes, and adding applications to the zip. I have a little bit idea, but want a clear process.
Click to expand...
Click to collapse
Well it all depends on what you want. I would suggest you have a base rom without the boot.img stored with minimal capability in a folder. then allow the user to choose what type of kernel and capabilities they would like with it. That will be the minimum amount for a rom. Then you can follow it up with additions such as extra scripts and applications that can be added and moved to the appropriate directories. at the end, you would zip up the selection and sign it, with the appropriate update-script (which should be the same as the stock rom's unless the additions require something drastic)
So the folder tree should look something like this for one specific ROM:
ROM/ROM Core Files (this is the base rom without boot.img)
ROM/ROM Core Files/META-INF (this is for the update zip)
ROM/ROM Core Files/system (this is where the system apps go)
ROM/ROM Core Files/data (this is where certain apps go)
ROM/ROM Kernels (this is where kernels are/boot.img)
ROM/ROM Kernels/boot.img.1 etc
ROM/Modifications (this is where apps and other mods go)
ROM/Custom Build (this is where the baked rom should go)
Then all you need to figure out is how to move everything to the custom build directory
Move the core to custom directory and a boot.img (rename it from whatever it is to boot.img) and then move and modifications to the appropriate directory inside the custom build folder. Then zip the custom build folder and sign it
That should be about right. its 3 am here lol so i may be missing something. pm me if you need more help or post here
Exactly.
The great thing about it. The ROM core files can be optional. You can bake a kernel or you can bake CM w/ custom kernel and custom mods, i.e. modded phone.apk. You can bake anything and everything.
Mmm baking never sounded so good.
Check this website out:
http://theunlockr.com/2010/03/26/ho...om-for-android-part-1-setting-up-the-kitchen/
My small contribution to this project
The basic kitchen:
forum.xda-developers.com/showthread.php?t=633246
Sorry it's not a link, apperantly new users cannot post links
flybyme said:
So the folder tree should look something like this for one specific ROM:
ROM/ROM Core Files (this is the base rom without boot.img)
ROM/ROM Core Files/META-INF (this is for the update zip)
ROM/ROM Core Files/system (this is where the system apps go)
ROM/ROM Core Files/data (this is where certain apps go)
ROM/ROM Kernels (this is where kernels are/boot.img)
ROM/ROM Kernels/boot.img.1 etc
ROM/Modifications (this is where apps and other mods go)
ROM/Custom Build (this is where the baked rom should go)
Then all you need to figure out is how to move everything to the custom build directory
Move the core to custom directory and a boot.img (rename it from whatever it is to boot.img) and then move and modifications to the appropriate directory inside the custom build folder. Then zip the custom build folder and sign it
Click to expand...
Click to collapse
Ok so after reading it 3 times carefully, this is what i got to:
All roms have same common files, which are:
1. the META-INF folder.
2. the system folder.
3. the data folder.
This is a basic skeleton of any rom, and every rom has these exact files.
Now what i have to do is, when a user cooks a rom, i have to pick the required boot.img and put it into the basic skeleton, in addition to any apps/modifications user want. Then zip the whole package and sign it.
Is that it?
PS: you also said that i may need to change update-script, in what cases that would be required?
PPS: Do i have to make changes to some other files too? cause it sounds too easy to be true =p
shararti said:
Ok so after reading it 3 times carefully, this is what i got to:
All roms have same common files, which are:
1. the META-INF folder.
2. the system folder.
3. the data folder.
This is a basic skeleton of any rom, and every rom has these exact files.
Click to expand...
Click to collapse
They usually have the same folders, not files
the META-INF has the signature files but most importantly the update-script which tells the phone what to do when your flashing the update.
shararti said:
Now what i have to do is, when a user cooks a rom, i have to pick the required boot.img and put it into the basic skeleton, in addition to any apps/modifications user want. Then zip the whole package and sign it.
Is that it?
PS: you also said that i may need to change update-script, in what cases that would be required?
PPS: Do i have to make changes to some other files too? cause it sounds too easy to be true =p
Click to expand...
Click to collapse
that SHOULD be it but remember that you may have to remove some apps from the core files of the rom such as amazon mp3 that people may not want, so you will have to see what apps can be removed and decide whether you want users to be able to remove it or not.
You MAY have to change the update-script if for example you want to put some things in the data partition and symlink them or change the data partition to include the ext partition instead of just for apps. Changes like that are usually for ROMs that are too big to fit properly on the nexus ( youll also have to check the size of the system and data folders to make sure they fit on the phone without modification)
Most of this stuff will be figured out in testing haha but ya at the very basicee its what you have here. You really have to know what you actually want users to be able to cook and then build the kitchen to that effect
flybyme said:
They usually have the same folders, not files
the META-INF has the signature files but most importantly the update-script which tells the phone what to do when your flashing the update.
Click to expand...
Click to collapse
So does that mean i can use same core for all custom baked roms? Except for the update-script, which in rare cases, may need to be altered.
flybyme said:
that SHOULD be it but remember that you may have to remove some apps from the core files of the rom such as amazon mp3 that people may not want, so you will have to see what apps can be removed and decide whether you want users to be able to remove it or not.
Click to expand...
Click to collapse
I took a look at system folder and it's quite populated. Can you tell me what are the basic files that are common for all roms? For the rest of the files, i guess i'll give the user choice to include them or not.
Also can you tell me what is zipalign? Will that be required in baking process?
And to let everyone know, I have already started the working on the kitchen =]
shararti said:
So does that mean i can use same core for all custom baked roms? Except for the update-script, which in rare cases, may need to be altered.
I took a look at system folder and it's quite populated. Can you tell me what are the basic files that are common for all roms? For the rest of the files, i guess i'll give the user choice to include them or not.
Also can you tell me what is zipalign? Will that be required in baking process?
And to let everyone know, I have already started the working on the kitchen =]
Click to expand...
Click to collapse
Well it really depends on what ROM's your looking at. Some devs change the apps to their liking. For example, CyanogenMod has a modified Settings.apk that has features specific to his rom. However, all ROMs have Settings.apk. As such, you will probably have to have a Core ROM folder for each specific rom.
I would suggest looking at other online kitchens and see what features they offer, come up with a specific feature set and then decide what direction that you want to take.
zipalign is a compression technique that optimizes how .apk files are accessed in android. it makes things faster and is not required but would be nice to have. you lose the benefits if you open and modify any files from a zipaligned apk
Let's clear some things up here.
First, core files are not interchangeable between main roms but only flavors of those main roms.
As of now, we have 3 main roms for the nexus one.
CyanogenMod, Modaco Custom ROM, and Desire/Sense Roms.
Each of these roms have their own unique cores amd features and are not interchangeable.
There are flavors of each of these roms.
Flavors of CM has parts that are interchangeable with other flavors but use Cyans core.
Say there is one CM flavor that has some themieing and a few other changes you don't want. You can take the themed files and put them into your CM base and leave the rest out.
You can't put that themeing into a Modaco Custom ROM though.
Kernels I believe are the only things can be put into any ROM base. Most apps are as well.
Now that I look at it. Doing a Nexus One kitchen isn't that difficult but making a full featured HTC kitchen would be a mountainous task. There are so many mods, roms and themes to keep track of. We'd have to designate people from each device forum to feed us the ROMs and parts that are active and functional.
P. S. Lectures are over at 7 today. ill be able to crack down on it with you then
Kitchens are for the Food Network...
well thanks flybyme and APrinceAmongMen, these 2 posts really cleared up somethings. I'm in the process and will keep you guys updated.
QUESTION: how do i change the radio and boot animations in a rom?
PS: the good news is, i'm done with all the hard part, and just few small things remaining. Probably if anything else doesn't comes up, you guys should have a n1 kitchen within few days =D
shararti said:
QUESTION: how do i change the radio and boot animations in a rom?
PS: the good news is, i'm done with all the hard part, and just few small things remaining. Probably if anything else doesn't comes up, you guys should have a n1 kitchen within few days =D
Click to expand...
Click to collapse
boot animations are located either in /data/local or /system/media
radio flash will require you to change the update-script
you can look at the FRF50 update with the radio to figure it out ( or pm me if thats too difficult, its a little late else id do it myself)
Just make sure the radio is excluded by default.
Another thing about radios, the newest radio usually works on older roms, but old radios don't work on the roms released with and after the newest radio.
I have been using aosp's rom v13, within it there are the googleemail and googleexchange apk's
within rom v21 those have been replaced with email and exchange apks
i have ran CRC checksums on those two versions and they're both the email and exchange apks are different between them. The v21 file sizes are substantially bigger but nothing in the change log tells us why.
the gapps from koushes ics thread has different crc's for those apks than aosp's v13 or v21; they don't match either of aosp's included apks.
This could all be nothing but I think we need an answer here.
Can someone talk about what's going on here? Since these are GAPPS they are the most sensitive apps, I'm sure people will get mad for me making a thread about this but I'm honestly surprised no one has questioned this earlier. I trust the dev's, otherwise I wouldn't be here flashing their roms, but that doesn't mean I shouldn't be able to question something like this openly either. I just want to understand why the email apk and exchange apk are so different from rom to rom within the same dev as well as why they're different from dev to dev when they share the same version.
Thanks
You have my support. I would like to know what the explanation is. I don't assume any I'll intent but it is a valid concern.
I looked at each apk content and there are some extra images in aosp version and the manifest file also but I don't think it was him putting it there. My best guess would be that he compiled it using different options.
If I'm not mistaken, email.apk is part of android os and therefore source is available. When compiling from source, not all files will come through the same.
I would still prefer that Jim stops by this thread and explain why his version is different. I'm sure he has a reason.
...and still no reply? Can anyone reach out?
I'd suggest going to the dev's thread, asking the question and linking to this thread.
Did that to no avail. I'm back to gingerbread.
Will someone get access to my emails, etc.? Some fill me up on this? Please.
You can set different levels of compression when making the APK files. Some devs remove stuff and others add, no two will be exactly the same.
Use apktool to decompile the packages and then beyond compare to compare to see the difference.
Most devs deodex the packages so they will be larger when compared to a Nexus dump from Google that has the odex files.
I have checked out most ICS ROMs in this forum and nothing fishy like that is going on. I always look at the ROMs before installing just to be safe.
AndroidUser00110001 said:
You can set different levels of compression when making the APK files. Some devs remove stuff and others add, no two will be exactly the same.
Use apktool to decompile the packages and then beyond compare to compare to see the difference.
Most devs deodex the packages so they will be larger when compared to a Nexus dump from Google that has the odex files.
I have checked out most ICS ROMs in this forum and nothing fishy like that is going on. I always look at the ROMs before installing just to be safe.
Click to expand...
Click to collapse
Thank you! I don't know how to use apktools so I just want to be clear...you've looked at the apk for email and exchange for both the v13 and v19 vs what's included in the gapps from koush and you've determined that they're all actually the same?
For what it's worth, if the dev uses a different system key to sign everything, it will cause the checksums to be off. ODex vs DeODex (Optimized vs nonoptimized) can very easily double things in size. Nothing creepy about that.
In addition, Mail and Exchange are not part of GAPPs, they're part of system apps, meaning the source for them are released (as opposed to GAPPs). This means they go through the compilation steps just the same as the rest of ICS.
Hi, I'm a Korean Developer.
Recently Samsung has released android 5.0 lollipop for our devices.
But most of you may be ambarrased because the lollipop upgrade changed lots of things in system.
So I researched few days about it, and I've got several informations.
All of what I explain here is the result of my experiments.
In developers discussing forum, famous developers were discussing about "How we can mod lollipop system files".
Thanks to qwerty123258, Softdx's lollipop de-odexing tool has been known to here. But the problem is that how to re-odex the de-odexed apps,frameworks.
As our common sense, ART doesn't support de-odexed apks,jars so we have to re-odex them. But many of you may think we can't re-odex animore with the way we have used.
I agreed it at first.
So I've heard that de-odexed SecSettings,SystemUI apk with Softdx's tool don't work and have FCs. Thinking like this, we can think there is no solution. Especially, lots of custom ROM developers cannot make ROM without smali modding.
BTW, I saw that mods for nexus devices' lollipop are mostly de-odexed. But there is no problem.
Hold on, the ART definitely doesn't support de-odexed mods, but why mods for nexus doesn't have matter? You may think this doesn't make sense.
So I had doubt to this 'common thinks'.
And one day, I was putting Galaxy Note3's apps into my system that worked on KK.
FlashAnnotate app had FC, and Action memo popup also had FC. But the main app and widget of Action memo worked well.
Moreover, SuperSU that I used when rooting my S5 was also de-odexed app.
Isn't it strange to say "ART doesn't support de-odexed"? So I thought that Google didn't fully removed dalvik, they just inactivated it.
So I replaced the FlashAnnotate app with the one for Note4, and it worked well.
Then I put Note4's apps like S Note, Weather Widget, etc. As I expected, all of them worked with no FC!
Thus, it is wrong to say that the ART doesn't support de-odexed. It is the problem of that app.
What problem?
I asked to one of my friend, a Note3 mod-developer. He said that stock Note3 doesn't support ART natively.
This means that the developers of Note3's stock apps didn't care ART.
It has the same principle with the issue that the old version of stock apps like S health have FC on Galaxy S5 lollipop.
The structure of app's source code have to match with ART's structure.
In short, de-odexing have no relation with ART. FC issue is the compatibility issue of that app.
So the apps of after-KK-released-devices can be worked whether it is de-odexed or not.
Is this mean apps with FC cannot be used on lollipop? No. We can modify it to match with ART's structure. I mean, we can port it as API21(lollipop).
Let me pass to the other subject.
Most of you may think that re-odexing as the way we used, extracting dalvik-cache in the phone cannot be used and we must convert it as oat.
But, I re-odexed the main app of Action memo,what worked well even it was de-odexed, as the way we used.
It also works well while it is re-odexed.
Therefore, we can re-odex apps with the way we used.
BTW, as mentioned before, stock Settings and SysUI don't work when they're de-odexed and re-odexed.
It doesn't make sense according to the theories before. Then, what's the problem?
There is one that most of you may overlooked.
When you're de-odexing with Softdx's tool, generally most of you may think converting oat to dex is important and baksmaling/smaling process must be worked well.
But the problem was in baksmaling/smaling process.
When I was de-odexing stock settings app with Softdx's tool,
(look at the attached 1.png because I cannot insert image)
There were errors on smaling process. But I've never modded any smali of it.
When I looked the codes that made errors, not recognizing the '+'s on the pswitch code.
(look at the attached 2.png because I cannot insert image)
like this.
Many smali modders may know that there was no '+' on pswitch code when modding smali of KK or lower versions.
But after I remove all that '+', it can be compiled well but it has FC. Why? literally "It was modded".
It is reasonable to have FC because it was "modded", not compiled without modifications.
We can think of these two cases:
1. The structure of app's source code was entirely changed, so the last (bak)smali tool cannot recognize changed codes.
2. The structure of app's dex was entirely changed, so vanished parts are made when baksmaling with last tool.
We can conclude with these two cases.
After the release of (bak)smali tool that can completely baksmali/smali, we can do modifications.
I've heard that the developer of apktool is going to release new version for lollipop. So we have to wait a little bit.
Although we cannot do smali modding yet, we can put apks in system.
Why don't you put several apps in system and confirm what works or not?
Anyway, Thank you for reading my bad English...ahaha
If you have another opinion for my think, reply it.
Wow really much thnx for this!!
Guys is it to do with snapdragon?
Has no one managed to port an M8 Rom over?
Kitkat is sooo old.
Basically it looks like stock Rom or something without sesnse.
Do people still visit this site?
eskimosound said:
Guys is it to do with snapdragon?
Has no one managed to port an M8 Rom over?
Kitkat is sooo old.
Basically it looks like stock Rom or something without sesnse.
Do people still visit this site?
Click to expand...
Click to collapse
One of the reasons of this device not having anything above Kitkat is that HTC never released an update for this device. They initially assured that we would get Lollipop but they didn't got on doing that stating it won't give "a good experience". And since this device isn't that popular, there is some development going on albeit at a slow pace.
We did manage to get a functioning CM13 port.
The CM13 ROM works fine...HTC thinks that Lollipop wouldn't give an optimal experience, optimal my dash..we running Marshmallow...
Great work @nightcore500
With some minor modification you can get the port of the cm13 rom to look just like the stock sense ui as it provides access to the exclusive HTC play store apps
Here is what I did (do at own risk):
0. Install the cm13 rom with gapps
1. Get a sense based HTC cm13 theme
2. Download the HTC apps you want (namely the HTC sense launcher and HTC service pack)
3. If the launcher is unstable, aka crashes when you try dragging apps to your home screen, then you need to follow the following steps, if not then your done
4. Make sure the file browser your using has root access
5. Locate the HTC apps you've downloaded under data/apps, they'll be named something like com.htc.luancher-1, and copy them over to system/priv-app (you can rename the folders to something like HTCSense)
6. Enjoy a near stock HTC experience with next to no lag what so ever
pls delete the post.
THX
hanro50 said:
With some minor modification you can get the port of the cm13 rom to look just like the stock sense ui as it provides access to the exclusive HTC play store apps
Here is what I did (do at own risk):
0. Install the cm13 rom with gapps
1. Get a sense based HTC cm13 theme
2. Download the HTC apps you want (namely the HTC sense launcher and HTC service pack)
3. If the launcher is unstable, aka crashes when you try dragging apps to your home screen, then you need to follow the following steps, if not then your done
4. Make sure the file browser your using has root access
5. Locate the HTC apps you've downloaded under data/apps, they'll be named something like com.htc.luancher-1, and copy them over to system/priv-app (you can rename the folders to something like HTCSense)
6. Enjoy a near stock HTC experience with next to no lag what so ever
Click to expand...
Click to collapse
Thanks
As my question, Google but can't find any good solution. Thank you
Why would you want to? odex means Optimized DEX. It is a specially optimized compiled java. If you take out the odex files and replace them into the apk as dex files, then each of those programs you did that to will have to reoptimize it into your cache partition. Essentially, it means that you will be (1) storing the data twice instead of just once, and (2) increasing the number of applications that have to be "optimized" whenever you make a frameworks change.
There is ABSOLUTELY NO BENEFIT to "deodex". People used to do it when Android was new, because they were retarded.
doitright said:
There is ABSOLUTELY NO BENEFIT to "deodex". People used to do it when Android was new, because they were retarded.
Click to expand...
Click to collapse
The only benefit if I recall correctly is while modifying a file in Android, since unless things have changed you can't get usable code from an odexed file using baksmali. But once done editing the file, it should be odexed.
Strephon Alkhalikoi said:
The only benefit if I recall correctly is while modifying a file in Android, since unless things have changed you can't get usable code from an odexed file using baksmali. But once done editing the file, it should be odexed.
Click to expand...
Click to collapse
If you can deodex it, then you can get usable code from it. You just need to add a step to the pipeline, which you have to add anyway.
doitright said:
Why would you want to? odex means Optimized DEX. It is a specially optimized compiled java. If you take out the odex files and replace them into the apk as dex files, then each of those programs you did that to will have to reoptimize it into your cache partition. Essentially, it means that you will be (1) storing the data twice instead of just once, and (2) increasing the number of applications that have to be "optimized" whenever you make a frameworks change.
There is ABSOLUTELY NO BENEFIT to "deodex". People used to do it when Android was new, because they were retarded.
Click to expand...
Click to collapse
Please don't use such harsh words like retarded. Everyone on XDA is always learning and there is absolutely nobody that is the best. As long as you are willing to learn, you are better.
There is actually benefits to deodexing. As you can see, theming touchwhiz is much easier this way as you wont get errors
And isn't that what roms are for? More customization options?