[Q]Building From Source (Single Modules / Bare Minimum Version) - XDA-University

My Question to the Dev's is is there a Guide on How to Build Single APP Packages eg Calculator from Source Without building the entire android from Source is possible to build eg libjpeg from source as a single module.
i have tried the mmm command all it did was spit out errors you fix one get ten more and so on
I also tried using NDK by inserting the open source libs into a jni folder and modifying Android.mk to look similar to the sample jni resulted in errors this is the only Guide i can't find as there many on building entire android but sometime one only needs specific modules and not entire build.
If above not possible is there a bare minimum version where it only builds android core frameworks and like one lib /app ?

i did not try this .
u can download the package like if u want trebucket launcher then download full android_packages_apps_trebuckhet.
recompile it to get the trebucket apk
once againg i did not try this out

defcomg said:
My Question to the Dev's is is there a Guide on How to Build Single APP Packages eg Calculator from Source Without building the entire android from Source is possible to build eg libjpeg from source as a single module.
i have tried the mmm command all it did was spit out errors you fix one get ten more and so on
I also tried using NDK by inserting the open source libs into a jni folder and modifying Android.mk to look similar to the sample jni resulted in errors this is the only Guide i can't find as there many on building entire android but sometime one only needs specific modules and not entire build.
If above not possible is there a bare minimum version where it only builds android core frameworks and like one lib /app ?
Click to expand...
Click to collapse
Mmm won't help as it needs to link against other parts of the system. That's why you need to do a full build before you can mmm
In theory you can take the app and try to import it into eclipse, and regard it just as an app project.

Related

[Q] Build from samsung source code

Believe this should be question for all newbee as well.
Downloaded new source code from opensource.samsung.com
get all source and whole environment setup from android.com
follow readme in samsumg's source code so I'd merge with android generic source
After make, the output system.img is only 50mb. Compared with samsung's system.img 250mb. After extract, there are significant differences.
apps, bin, frameworks, csc.. are much different.
Anyone had idea how to build correct samsung's image?
I created new launcher and lockscreen, it works on emulator, but cannot port to samsung Galaxy S because of environment setup, your help step by step will be very helpful, thanks!!
Hi buddy,
Do you know what’s the problem?
I meet the same problem about compiling.
The system.img only 58M. I cann’t run the image with emulator.
I don’t know how to solve it.
I guess your problem is that you don't get the drivers on the sgs.
Many are not open source.
So you can't build a firmware from scratch.
The open source from Samsung is only the kernel.
What you need is to import all missing stuff in the firmware you did compile, but you will face a bigger problem to change all places that using the missing stuff.
Sent from GT-I9000 jpo. My own kernel for z4mod and with 342MB Ram

Creating flashable roms?

Im just curious. How does one go about creating their own working custom rom? I feel like it would take forever to get everything in precise working condition and have it available for the community.
Sent from my DROID3 using XDA App
What do u mean? There are already roms out such as Steel Droid and DarkDroid. I guess I am confused to this post.
Sent from my DROID3 using XDA App
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
tcrews said:
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
Click to expand...
Click to collapse
Thats interesting. Thats the kind of answer i was looking for. I was just curious. Thank you.
Sent from my DROID3 using XDA App
tcrews said:
It depends on who/how it's created.
A lot just take the stock ROM, delete some apps, make graphical changes to the framework and edit the build.prop file. They may add an app or two (free app) that they feel enhance the phone.
Others pull the source code from Google/Android down to a Linux based workstation and make edits to the source code. Adding their own source and what not to it, replacing images (icons) and some even add new features or functions not available by modding a stock ROM (pulling in their own libraries into the stock source build).
Currently there are ZERO "source" built ROMs for the Droid 3. All are working from the stock ROM and re-theme'ing it.
Hashcode though, is working on getting the CyanogenMod source tree to compile for the Droid 3 though this takes a lot of work trying to figure out what needs to be changed to make it compile and function on the Droid 3's hardware.
Click to expand...
Click to collapse
Speaking of CM74D3, I believe the last update was everything is working except GPS and Radio.
...those are two quite important things, lol.
@tcrews:
I have my laptop almost set up to pull the source code from Google and use that. However long it will take me to make something, however, remains to be seen.
Sent from my DROID3 using XDA App

[DEVS] You too can build a CM-based AOSP ROM

Obviously, I am going to be cleaning up some bugs with the CM7 build...
But, for those of you who might be inclined to develop a CM-based AOSP ROM, feel free to check out my github source to see what's involved:
https://github.com/Hashcode
Or you can:
repo init -u https://[email protected]/Hashcode/cm4D3.git
repo sync
To pull the entire set of android files that I use for compiling the current build.
Please note that the Board Config is currently setup to generate Safestrap .zip files.
Great job
Thank you for everything you have done for the droid 3!
Is there a kitchen for DROID 3 roms. Running windows 7
Sent from my DROID3 using xda premium
You need to be running Linux to do this hardcore kind of stuff.
Like Ubuntu I had it set up in VB and detain. Was just wondering if there was some thing for Motorola roms out there. I have had HTC phones this my first moto with android on it.
Sent from my DROID3 using xda premium
I'm starting to tinker with building (learning, actually) ROMs. I'm running Linux Mint Debian - has there been a kitchen built for D3?
Hashcode said:
repo init https://[email protected]/Hashcode/cm4D3.git
Click to expand...
Click to collapse
That should be
Code:
repo init -u git://github.com/Hashcode/cm4D3.git -b gingerbread
or whatever URL you want to use from the access URL box at https://github.com/Hashcode/cm4D3.
And of course "gingerbread" could be "ics" if your excitement about being on the bleeding edge overrides what should be a fairly sensible fear reaction to the term "bleeding edge".
@Hashcode: You don't use your own ALSA repos? (Comparing with my own generated manifest for your project...)
Also, are you planning on pulling newer Gingerbread manifest changes into your tree? I noticed CyanogenMod have gained a u8150 device tree, and I happen to have one of those, but your manifest doesn't list it...
Ooops. I have a u8510. >_< But the question stands...
TBBle said:
That should be
Code:
repo init -u git://github.com/Hashcode/cm4D3.git -b gingerbread
or whatever URL you want to use from the access URL box at https://github.com/Hashcode/cm4D3.
And of course "gingerbread" could be "ics" if your excitement about being on the bleeding edge overrides what should be a fairly sensible fear reaction to the term "bleeding edge".
@Hashcode: You don't use your own ALSA repos? (Comparing with my own generated manifest for your project...)
Also, are you planning on pulling newer Gingerbread manifest changes into your tree? I noticed CyanogenMod have gained a u8150 device tree, and I happen to have one of those, but your manifest doesn't list it...
Ooops. I have a u8510. >_< But the question stands...
Click to expand...
Click to collapse
Thank you for pointing out that my repo init line was wrong. I fixed it for those that were having issues.
Also, for those watching my manifest for ICS, I'm getting an error when syncing:
error: revision refs/heads/master in manifests not found
I'm trying to fix that. Correction: Fixed it and double-checked with a repo sync.
Some quick answers:
- I tried to customize the alsa source to fix some of the audio issues. But it ended up being a bit more complex than just changing ALSA. Motorola added a layer into the audio system for handling HDMI audio and in call audio volume.
When you build stock AOSP Gingerbread using the alsa drivers, the libaudio.so file ends up being all of the ALSA calls. If you examine the libaudio from the D3, you'll see that it is nothing of the sort. It's the customized mixer lib for RDS voice and HDMI audio. There's another lib from the phone: libaudio_ext.so which ends up being the alsa calls.
All of which made customizing just the alsa code risky at best as the further away from the version of alsa that was used on the phone, the less likely that the custom libaudio would work.
I probably still have the unfinished hardware_alsa git out on github, but it's not active in the current build.
- I can occasionally check for updates to the CM7 manifest and add them, or if you fork the manifest and add it in there that works as well.
Side Note: I may need to pick your brain on an EGL 0x0500 erorr I'm getting in the ICS code. I'm fairly certain it's an enum value that our version of the PowerVR drivers aren't set to handle, but I'd like to confirm that for my troubleshooting. And it seems that you might have some knowledge in that area
Where/how does someone begin working on building a ROM once they've downloaded these files? I'd rather dive into code and learn Android rather than using a menu driven wizard. Is there a tutorial somewhere? What tools are needed?
Sent from my DROID3 using XDA App
Phibernaut said:
Where/how does someone begin working on building a ROM once they've downloaded these files? I'd rather dive into code and learn Android rather than using a menu driven wizard. Is there a tutorial somewhere? What tools are needed?
Sent from my DROID3 using XDA App
Click to expand...
Click to collapse
This would be the starting point that you're looking for:
http://source.android.com/
Hashcode said:
Side Note: I may need to pick your brain on an EGL 0x0500 erorr I'm getting in the ICS code. I'm fairly certain it's an enum value that our version of the PowerVR drivers aren't set to handle, but I'd like to confirm that for my troubleshooting. And it seems that you might have some knowledge in that area
Click to expand...
Click to collapse
Some, but probably not enough. I'm happy to look, but I'm actually moving internationally tomorrow so I may not have 'net access for a week or so. >_< (That's why I've been trying so hard to get backup working. ^_^)
Once I'm settled in I will probably use fdisk to repartition my device or have a poke at hacking sd-ext support into safestrap, so I can start playing with custom ROMs.
Did you see my safestrap-ME863 nandroid patch in the Safestrap thread, BTW? It's got a couple of TODOs, but seems safe and roughly correct to me. http://forum.xda-developers.com/showpost.php?p=19683372&postcount=249
It could also form the basis for detecting when /preinstall can't be used as safe-system although I didn't look to see if there's already code to do that.
Does anyone know of a site where I can peek at reference code for random things (Apps, Kernal etc.)? It'll make it easier to understand how the code works. I haven't look at any code yet so I don't even know what language apps and the os are programmed in. (Java, C, C++, Ruby)
Sent from my D3-CM7-SS using xda premium
tenchi19134 said:
Does anyone know of a site where I can peek at reference code for random things (Apps, Kernal etc.)? It'll make it easier to understand how the code works. I haven't look at any code yet so I don't even know what language apps and the os are programmed in. (Java, C, C++, Ruby)
Click to expand...
Click to collapse
Just pull down the repo as Hashcode describes in this thread - you'll have all of the Android source. To the best of my knowledge, it comprises of mostly C, C++, and Java, but there is probably a smathering of some other things like ASM, perl, BASH, etc.
And to those who are asking if there is a kitchen, there is, it's called make

[REQ] ROM Dev needed for Pdroid patch

As featured on the XDA portal Here
Note: I understand that the source is for 2.3.4 right now, but svyat is currently working on an ICS version. Hopefully a talented Dev can figure this first. If not, I will post svyat's ICS source patches when he makes them available.
This thread is really a request/research & development topic. I take absolutely no credit for any of the work done by svyat or any potential/willing ROM dev or chef.
The purpose is to bring to attention a new app created by svyat by the name of PDroid. You can find that thread Here.
PDroid is an app with a capability a lot of you are probably already familiar with; permission control. Permission control is the ability to block which permissions apps have access to on your device. PDroid takes this a step further by allowing you to block or change the information that a requesting app receives.
For example: many of you may be aware of LBE security app or permission control in Cyanogen. A lot of times when you block permissions to an app it will cause the app to break (force close) which requires you to change back your settings allowing the app access to information you would rather deny. What is the purpose of blocking data if it just breaks an app? Well that's why svyat has written Pdroid.
PDroid allows you to block permissions AND if that breaks the app, instead you may provide the app with false information. For example: When an app requests your location, you can have PDroid provide a false location. Or when an app requests your IMEI, you can have PDroid provide a false IMEI that you made up. You are able to do this will many of the permissions.
What I am requesting from a ROM dev or chef:
I am not experienced with programming at all so I will do my best to describe what I understand.
PDroid requires that Roms be patched so that the app can work. Currently svyat is doing the patches at a request basis. This is a slow process (he has many people requesting and is working alone). So I am hoping we can get a willing chef to patch one of his ROMs with this.
You can find the patch source Here
Instructions for patching:
Download: PDroid 2.3.4 source (v1.22) (yes it is based on 2.3.4 but also works with 2.3.3 and 2.3.5 flawlessly)
Get the 2.3.4 source from AOSP (branch: android-2.3.4_r1)
Extract the patches from the above archive to the 2.3.4 tree root
Run:
Code:
patch -p1 -i build.patch
patch -p1 -i frameworks.patch
patch -p1 -i libcore.patch
Building from source:
Make a clean build
Apply the patches (see above)
Run:
Code:
source build/envsetup.sh
make update-api
mmm frameworks/base
mmm frameworks/base/services/java
mmm libcore
make snod
However, for experienced developers the following basic steps for creating a PDroid patch should be enough to get you started:
Make a clean AOSP build (2.3.4, assuming that your ROM is based on 2.3.x)
Make another build with PDroid sources added
Decompile the framework.jar, services.jar and core.jar files inside the system/framework directory (of both above builds) using apktool
Diff the output so that you know, which parts were changed by PDroid
Decompile the above three files from your ROM, you want to patch
Add the missing code to your ROM files based on the above diff
Recompile your patched ROM files using apktool
I really seeing this type of control being the new standard for custom ROMs. To me, this is another BIG reason to be rooted!
disregard 10chars
disregard 10chars
Sent from my Nexus S using xda premium
disregard 10chars.
Sent from my Nexus S using xda premium

Porting AOSP from source

ok, i'm trying to port and boot the AOSP source from google for 4.1.2 JB x86, first of all, i follow the next guide to build my own compiling machine http://forum.xda-developers.com/showthread.php?t=2762390 but i download in the step 12 the repo of google AOSP (repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r2.1 & repo sync)
Start the enviroment with: . build/envsetup.sh
and download download the source from motorola to get some propertary files http://sourceforge.net/projects/razr-i.motorola/files/LATAM/9.8.2I-50_SML-29/
now, the git have some instructions like you see in the README file inside the source, this say:
1. Create a workspace containing "vanilla" JB release from Google.
Done
Click to expand...
Click to collapse
ou may need to apply the following change in build repo to prevent the build from aborting when unexpected user tag is found on some modules:
[SOURCE] diff --git a/core/base_rules.mk b/core/base_rules.mk
index 3c11673..ecf611d 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -99,7 +99,7 @@ ifneq ($(filter $(LOCAL_MODULE_TAGS),user),)
$(warning * PRODUCT_PACKAGES section of)
$(warning * build/target/product/core.mk)
$(warning * )
- $(error user tag detected on new module - user tags are only supported on legacy modules)
+ $(warning user tag detected on new module - user tags are only supported on legacy modules)
endif
endif [/SOURCE]
i'm trying to do this step, but nothings seems happen...
The second step says that all we need is overlaying the Motorola repos on top of the AOSP repos, but in the Terminal i don't know some commands ('cause always i work on Windows ).
i need just a little help in here, i'm tryin to compare both sources, but in windows i've a tool called WINMERGE, in linux i don't know if we have something like that. I don't wanna overlay the repos, i want to compare the files and re-write the AOSP source with some parts of the motosource and get AOSP software with motorola hardware working.
thks to all, sorry for my bad english, i don't use translator
I always used meld. Meld is an 2to3 way comparing tool, that compares folders (date), files (versions) and text. It is almost like winmerge, just a little bit different. U can look it up in the app store of whatever ubuntu/linux version you have.
As for the defferences between aosp and moto. There are a number of differences. The most can be located in the system/core where moto has changed the behavior of how init works and some x86 implementations (especially pixelflinger). The next BIG thing is the bionic (libc). It has many x86 implementations and i am not sure if u can overlay them without trouble into aosp source.
Good luck!
Hazou said:
I always used meld. Meld is an 2to3 way comparing tool, that compares folders (date), files (versions) and text. It is almost like winmerge, just a little bit different. U can look it up in the app store of whatever ubuntu/linux version you have.
Click to expand...
Click to collapse
yeah, i'm using meld, it's amazig 'cause i can copy the files from one to another place, by the way, i'm using Ubuntu 14.04, with JVM 1.70 but 've some errors in the moment to build ...
As for the defferences between aosp and moto. There are a number of differences. The most can be located in the system/core where moto has changed the behavior of how init works and some x86 implementations (especially pixelflinger). The next BIG thing is the bionic (libc). It has many x86 implementations and i am not sure if u can overlay them without trouble into aosp source.
Good luck!
Click to expand...
Click to collapse
yeah, i see the both codes and check the changes, in some lines the works of moto it's amazing, but whe need more dev's to check all the changes to implement for porting ROMS
Lenovo has recently provided a software update which upgrades Android to version 4.3 for the k900, so i'm going to download the repo AOSP from google and later try to port 4.3

Categories

Resources