The XDAndroid Project is no longer active.
This site provides archived information from while the project was under development. Some links may no longer function.

Building and Packaging

From The XDAndroid Project
Revision as of 18:02, 28 May 2010 by Stinebd (talk | contribs) (Created page with 'With a configured source tree, building and packaging is a somewhat painless process. There are a couple of preliminary steps to do for optional portions of the system (such as G…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

With a configured source tree, building and packaging is a somewhat painless process. There are a couple of preliminary steps to do for optional portions of the system (such as Google apps). However, most of the time spent with the build process is waiting for compilation.

Before commencing with the complete build, it may be necessary to provide dependencies for the system.

Build Dependencies

It will most likely be necessary to provide certain proprietary drivers and libraries to the build system. For XDAndroid project target devices, this will require the HTC Dream (Android Dev Phone) system image, from which those bits will be extracted. The Android Dev Phone is reference hardware, and so the system image is provided by HTC for download. The image can be downloaded from the HTC Developer Center website, via the signed-dream_devphone_userdebug-ota-14721.zip link. The zip file should be saved, with the same name, in the root directory of the XDAndroid source tree. This can be skipped only if the build system has been configured to generate a kitchen base image.

If, while configuring the build system via buildspec.mk, installation of the Google apps was enabled, it is necessary to provide those binaries to the build system. These binaries can be extracted from a running Android Eclair system via ADB, or in lieu of such a device, a bundle of apps can be downloaded from an external filesharing mirror. Save this file in the root directory of the XDAndroid source tree, under the same name.

Finally, the needed files must be extracted from those archives. There is a script in the XDAndroid-specific portion of the source tree which can accomplish this. To do this, perform the following from the root of the XDAndroid source tree...

$ cd vendor/xdandroid/msm
$ ./unzip-files.sh

The files will be extracted and available to the build system.

Building the System

This highly convoluted step will eventually spit out a number of filesystem images, including one containing the XDAndroid system.

To build the system, execute the following extremely complicated command from the root directory of the XDAndroid source tree...

$ make -j4 # A -jX argument based on the number of CPUs available, plus one, is recommended.

After several weeks, the build will be complete and the system is ready for packaging.

Packaging the System

The Android build system, which hopefully went off without a hitch, will have generated a number of filesystem images in out/target/product/msm under the root directory of the source tree.

Until development of the system has progressed to the point where the system can be flashed to the phone's integrated flash storage, most of the generated images are of no concern. The most interesting image is system.img, which contains the binaries generated by the compilation process.

If the recommendations given in Build Configuration have been followed, the filesystem images will be ext2. This is usable as-is with the current initramfs that the XDAndroid project uses, and it can be renamed system.ext2 and placed in the user's andboot directory for a successful boot.

Optionally, the system image can be repacked as a SquashFS file system, for smaller size. Instructions on completing this step will follow shortly.