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.
@rovo89
How should writing logfiles be handled now?
Previously using the Xposed log was not okay, but now permissions are missing... SELinuxHelper.getAppDataFileService() allows only to read files.
So could you add something to write files? Or whats the best way?
I don't know what's the best way yet... maybe the services could learn to write files as well, but it will be quite some effort. An alternative might be logcat. I could also imagine adding more APIs to write something to the Xposed log with a special prefix (e.g. your module's package name) that the installer could then handle better. But for now, I don't really have a good answer to that question.
rovo89 said:
I don't know what's the best way yet... maybe the services could learn to write files as well, but it will be quite some effort. An alternative might be logcat. I could also imagine adding more APIs to write something to the Xposed log with a special prefix (e.g. your module's package name) that the installer could then handle better. But for now, I don't really have a good answer to that question.
Click to expand...
Click to collapse
In case you add file writing, rename and delete would be also usefull.
With these the oldest logfile could delete at startup and then current "rotated"/renamed to something like "old"
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?
Greetings to all. I am new to this forum and I have a question for you experts.
There is a very old and abandoned app that I used to like a lot. It is very simple (the size was just 99KB). It is simply creating a floating icon above other apps that initiates screenshots.
When I tried to install and use it on my OnePlus 5, I got the message that this application needs to be updated.
The thing is that there is no update available for this app because the developer for his own reasons abandoned the project.
Could this be because of the modified Android version my device is running? Or is it because the app is no longer compatible for the latest Android versions in general? (My old device was under 4.4 KitKat)
Is there a way to resolve this manually perhaps by decompiling , editing and recompiling the apk?
Is there a way to recreate the same apk to be compatible with the latest bunch of Android versions?
Is there perhaps a way to avoid all the hassle and "trick" the app thinking that everything is O.K.?
Since I am a complete and utter n00b, please explain to me.
I wish to thank you all in advance for your time and effort to answer to me.
The apps' source code needs to be updated.
Do you have a link to the apps' source code?
Would also help to know what app you're talking about.
GameTheory. said:
The apps' source code needs to be updated.
Do you have a link to the apps' source code?
Would also help to know what app you're talking about.
Click to expand...
Click to collapse
I have the apk file if that helps. I tried to private message you but I was not able.
How can I provide the source to you?
The link to the actual apk file is here: https://drive.google.com/open?id=1zImcIf1lret_9XsCRawrj4FLPtbMGe7j
The app is creating a floating button/icon that allows to take screenshots of a specific (designated by the app and fixed) area of your screen. You can take multiple screenshots and evry single screenshot appears in tiny thumbnails on your screen, each one next to the other. All screenshots are getting erased automatically after a few seconds (don't recall how many, maybe 30 secs).
Yeah I have private messaging disabled. I prefer to do any communication on the forums.
As I mentioned, the source code needs to be updated. So if you post the source code I'd be willing to take a look.
No guarantees of course. Lots has changed in android over time. A lot of code has been deprecated. Don't know if it can be updated or if it's just better to start from scratch.
GameTheory. said:
As I mentioned, the source code needs to be updated. So if you post the source code I'd be willing to take a look.
Click to expand...
Click to collapse
I really appreciate your willingness to assist.
As I mentioned I am not very android developing savvy, I have the classes-dex2jar.jar.src.zip here: ------------
Is this what you are looking for???
Let me know if I am mistaken.
I have also extracted all the contents of the apk using apk studio. Let me know if you need anything else.
D4MN4T10N said:
I really appreciate your willingness to assist.
As I mentioned I am not very android developing savvy, I have the classes-dex2jar.jar.src.zip here: https://drive.google.com/open?id=1wYB9STPq70LTc04YL1Yvpf2dY7-T1bZ2
Is this what you are looking for???
Let me know if I am mistaken.
I have also extracted all the contents of the apk using apk studio. Let me know if you need anything else.
Click to expand...
Click to collapse
I did a little digging by decompiling the app so that I can look at the strings.xml to get the official app name. With the app name I did some research and concluded that the developer did not make it open source. This means its original java code is not public and therefore the app cannot be updated.
You'll have to find another app in the play store similar to this one for your use.
GameTheory. said:
I did a little digging by decompiling the app so that I can look at the strings.xml to get the official app name. With the app name I did some research and concluded that the developer did not make it open source. This means its original java code is not public and therefore the app cannot be updated.
You'll have to find another app in the play store similar to this one for your use.
Click to expand...
Click to collapse
OK thank you for your time.