[Q] Proper way to remove a package from source? - Android Q&A, Help & Troubleshooting

Hello all,
I am working on a custom CyanogenMod ROM (10.2) for my own use. I've managed to accomplish most of my goals. One thing remains: removing packages that I don't want/need from the build. Technically, I am able to do so already by modifying the Android.mk file of the package so that it produces errors during the build procedure, skips building the package, but doesn't stop the entire build process. However, that is just a lousy hack.
Can anyone point me to the correct .mk/.sh/.whatever files in the repository I would need to edit (there are probably several) so that I can skip building the packages I don't want included in my ROM? I want to avoid using a "kitchen" if I can. I won't actually learn anything if I use a kitchen.

Files to look at
After laboriously looking through the repository, I came accross several files/directories you may need to look through/edit to remove packages from the build:
This directory (replace cm102 with your path to your Cyanogen repo):
/cm102/vendor/cm/config
This file:
/cm102/android/cm-10.2-M1.xml (<- This is a long file, dig through it. I edited this to help me remove some prepackaged live wallpapers, but there is a lot more in here.)
Device specific CM makefile that may specify additional packages to include (replace the all caps with whatever seems logical in your directory at each step):
/cm102/device/YOUR_MANUFACTURER/CODENAME-COMMON/CODENAME-COMMON.mk

Related

To ROM cookers: working on a nice program for making ROMs

Hello everybody!
Even if this is my first post on this forum, I use to visit this useful place since years, I tried many of those great WM6 ROMs made by our ROM cookers (thanks to all), then I tried to cook my own ROMs using tools recommanded in the Wiki.
But those kitchen tools weren't conveignent for my use, it was a lot of work and patience for making ROMs, we need to use many different programs and scripts, and I thought that the cooking process could be really simplified using an unified graphical interface like dutty's tool. I was patiently waiting for his Hermes Rom Koch V2, but finally I started to develop my own kitchen tool!
Here are some features of this program:
- ROM file manager (to add/delete/extract files or to create shortcuts)
- ROM layout editor (to edit init flash files)
- Registry editor (to modify/import/export default & user registry)
- CAB install files integration
- ROM creation from original OS image or dump directory
I posted some screenshots for better explanations.
This program simply use aWaiter and ImgFS tools for ROM creation/extraction.
For now I still have a lot of work on it, but I would like some advises from experienced developers on this forum, because even if my program works, I would like to know if the cooking process is porper and safe, and how I could improve it (for example using internal functions for ROM creation/extraction instead of external programs, implementing NBH tools,...).
If some of our XDA-developers are interested, I would really like to make this project an Open Source "all-in-one" ROM cooking program, gathering all the others kitchen tools in an unified graphical interface offering the easiest way to cook nice ROMs for our Hermes and certainly for other devices.
I know that I didn't give many details about my program but don't hesitate to ask me about it. I would also have few questions for developers.
Developers and ROM cookers, I'm waiting for your feedback!
Thanks.
This looks very user friendly, I will be watching closely. Good work.
What language is it in? (programming language that is)
Midget_1990 said:
What language is it in? (programming language that is)
Click to expand...
Click to collapse
I developed this program in C# (using .NET framework 2.0).
Thx for your work! It would be better if the tool support packages.
http://forum.xda-developers.com/showthread.php?t=296861
Where to download??
Thanks for the link. I already thought about working with packages because it seems to be a better way to make "clean" ROMs, but I couldn't find enough information about how to extract/build packages in ROM.
I tried bepe's package tool on my own cooked ROM and I noticed that removed files were marked as missing in packages, and all the files I added weren't moved from dump directory. There is nothing surprising, but I wondered if adding/deleting manually files from ROM, causing "corrupted packages", can have any effect on final ROM. If not then why packaging information (like .dsm and .rgu files) are still present in ROM after all packages were merged? What exactly contains .dsm files, and how to create them for adding new packages?
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Thanks
I'm still working in this project, so I didn't plan any release yet.
Good idea and nice project.
Go on dude !
Good work.
Great work so far - I fullly support this project.
Lookign forward to the release.
schaps said:
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Click to expand...
Click to collapse
Great project - and I agree, it definitely should support packages. If you've had a look at bepe's kitchen, you already know how much easier it is to understand the purpose of all the files in a ROM if they are organized in packages.
.rgu files are Registry "source code". They are not part of the package mechanism. And yes, when cooking a ROM you can leave them out, as they are not needed at run time. Saves a bit of space.
The .dsm files, otoh, are needed at run time.
When I cooked my ROM, I did find some information (written by bepe) here in the forum about how to make your own packages. Can't remember where that was, but I found it on my hard disk, so I simply quote it here again:
How-To build ur own OEM Package:
An OEM Package is just a simple folder containing files and registry settings for the ROM
First of all you'll need a GUID number for your Package.
Go to http://www.famkruithof.net/uuid/uuidgen to get one.
In my case:
283b9db7-cb03-4c1b-820e-ca49b2c3b5db
Necessary steps:
1. Create a new folder:
Dev/OEM/[Your package name]/
2. Create a empty text file:
Dev/OEM/[Your package name]/283b9db7-cb03-4c1b-820e-ca49b2c3b5db.dsm
(CreateOS.exe will finish this file for you)
If needed:
3. Create an UNICODE text file:
Dev/OEM/[Your package name]/283b9db7-cb03-4c1b-820e-ca49b2c3b5db.rgu
This file could be used to add registry entries to the ROM
First line is:
REGEDIT4
...
and there MUST be a empty line at the end!!
4. Create an UNICODE text file:
Dev/OEM/[Your package name]/initflashfiles.txt
This file could be used to create folders or copy files, shortcut on the ROM.
For Example/ Ilustration: Open or read Dev/LOC/initflashfiles.dat using a text editor or any premake initflashfiles.txt at one of the OEM folder.
and there MUST be a empty line at the end of iniflashfiles.txt also!!
Copy all files you need to Dev/OEM/[Your package name]/
Click to expand...
Click to collapse
Hope that helps. If I remember correctly, bepe told me that the OEM folder is treated a bit differently from the SYS folder, so it might be you can't create packages there. But then, you probably also shouldn't.
Oh, and about the initflashfiles.dat: you are aware that the initflashfiles.dat just copies files and does not move them? Using this feature extensively uses up ROM space very quickly, so it should be done for small files (like the start menu shortcut files) only.
Cheers
tadzio
Thanks a lot for your help tadzio!
I also read the different steps about how to add a new OEM package, I found information on this Wiki if someone is interested : http://wiki.ppcgeeks.com/index.php?title=Kitchen.
I think I know enough about it but what I would know is how to extract packages then to merge them for creating a ROM image, like do bepe's tools?
I confirm I also heard that OEM folder processing is different from SYS folder.
Concerning the initflashfiles.dat I guessed that files were copied from ROM to storage memory, good to have a confirmation. So it means that if we want to include a new program in ROM, we should better to let it in Windows folder than to put it in a Program Files folder, right? I have another question about initflashfiles.dat, I saw that it sometimes uses variables for directories instead of strings (for example Directory(LOC_XXX), Directory(0409_XXX),...), where could I find those variable declarations?
schaps for president
schaps said:
Thanks for the link. I already thought about working with packages because it seems to be a better way to make "clean" ROMs, but I couldn't find enough information about how to extract/build packages in ROM.
I tried bepe's package tool on my own cooked ROM and I noticed that removed files were marked as missing in packages, and all the files I added weren't moved from dump directory. There is nothing surprising, but I wondered if adding/deleting manually files from ROM, causing "corrupted packages", can have any effect on final ROM. If not then why packaging information (like .dsm and .rgu files) are still present in ROM after all packages were merged? What exactly contains .dsm files, and how to create them for adding new packages?
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Thanks
Click to expand...
Click to collapse
Hi Schaps,
you can have a look in this link:
http://forum.xda-developers.com/showthread.php?t=312985
it's a tool to re-build DSM file, which is better than just creat an empty .dsm file when making new package.
hope this help. It will be cool if your new tool support package.

How to develop an application already included in the ROM

Hi all,
I'd like to modify the Gallery3D application , which is already included in my current rom (CM7 nightly), using eclipse and adb. However when trying to install the version I compiled, it fails.
There are two conflicts at least : the package name, and the providers.
I tried to freeze the ROM version with titanium backup, but it doesn't change anything.
The package name, I could change it in the source code (using sed utility, since eclipse was generating an exception with the Android tool to rename the package -_-)
But the providers, this is really annoying to have to change their names as well, it's a much more complicated operation, and I'd prefer to be able to use the source code as is.
So is there a simpler solution ?
I suppose I could try to remove Gallery3D from the ROM, but not sure how to do that. Or other possibilities ?
Ok found the solution : I simply had to remove the Gallery.apk file from /system/app

[q] obtaining prop files, binaries<help>

well the net is jam packed with tuts and how tos on setting up build environments, and building/ compiling or just plain cooking roms/ kernels.
and everyone is different in its own way, but everyone of them is the same when it comes to putting in device prop files,binaries.
a little vague, and assumes you have them. lol
so i have a sudo supported device, lgp505. i am trying to obtain prop files for it so i can build GB. i do not have an extract-files.sh that works, i have ics,jb prop files and the extract script from that git tries to cd to a folder that is not there.
how do i go about getting GB prop files. what files do i need, and how do i get them and the .mk files into source in order to compile?
thanks abunch.

[Q] Making / editing custom ROM's using Linux

I'm looking for a little bit of help with understanding something.
My ideal place to get to is to eventually provide the community here with custom roms and mods which everyone can enjoy on their devices, just like what all the greats devs do here day in day out.... but before I get there, I'm on a path of discovery. At the minute, I want to take a XDA dev's already pre worked ROM, go in to it and change a few things up.... edit the apps, maybe play with a few apks, change the ringtones etc, and then resign the ROM and flash it to my device.
I've been reading some great tutorials such as http://forum.xda-developers.com/showthread.php?t=1801690 and http://forum.xda-developers.com/showthread.php?t=1843506 which I am finding very helpful, however....
They seem to be geared towards someone working on a windows machine. I dont want to do it in Windows, I want to do it in Linux... I dont wish to use "CygWin" and I would rather do it manually than use a kitchen - I could easily follow these guides in Windows and achieve my stated aim of a slightly modified custom ROM, however, the overall goal here is to acquire knowledge, and enjoy the process as it goes along.
Now, my current understanding under Linux (Mint 13) is that I can download a recovery flashable Zip, go in to it, and just change up some of the files as I desire.... but then I get confused when it comes to repackaging the ROM prior to flashing it to my device. How would I go about doing this?
As a side note, when it seems that all development for these devices is done under Linux / Mac... why do all the newb guides steer you to Windows?
Are you asking how to rezip or how to recompile?
If you're asking about zipping up the folder, go here:
http://forum.xda-developers.com/showthread.php?t=1499885
If you're asking about recompiling, it should state how to do so on the page you got the apktool from.
Hi, thanks for your reply. I guess for now what I am asking is how to get the ROM back to a flashable zip file.
The I believe is that you need to have the ROM signed. The windows tutorials point you to a batch file script that does the signing and creates you an "update.zip" file. What id the alternative to this under linux?
Also, in the post you just provided a link to, someone says that you must also edit an update script to reflect the changes you made, such as any apks removed or added etc, where would I find this?
You need signapk.jar which I believe is included in the android sdk if not just Google and you can find it, once you have that you need a key to sign with, again Google for a testkey.
Then in your terminal you would run:
Code:
java -jar signapk.jar certificate.pem key.pk8 your-update.zip your-signed-update.zip
Sent from my PACman GT-I9100 using xda premium
Excellent, thank you very much.. will play with this later

Made a ROM. Now what...

I built a rom for my device based on lineage oreo. So far it looks good. I want to do the following things and not sure how to achieve this, will keep working on it, but any tips are appreciated.
1. change the name etc of the ROM. Different generated name for the rom zip file. different name in settings->About phone after the install.
2. Add an existing apk to the code base so that its automatically installed. How do I make it removable (pre installed app, can be removed) or not-removable (pre installed app, can't be deleted.
3. Add sources for an apk to the code base so that it gets compiled and installed. Same question with removable/non-removable. I tried this with f-droid sources. Added a line for this to the local manifests. Sources get downloaded, but dont get compiled. I added a line for this to the PRODUCT_PACKAGES in common.mk (for the vendor tree) but I dont see anything related to f-droid in the build log or the out folder related to f-droid. App does not get installed on the phone.
4. Change settings for an app. i guess this would require modifying the contents of some file where the settings are stored. Is there a concept of a post install script where it can be taken care of.
Thats all I can think of now, more later. Thanx guys..

Categories

Resources