http://xdandroid.com/w/api.php?action=feedcontributions&user=Raf&feedformat=atomThe XDAndroid Project - User contributions [en]2024-03-29T01:30:48ZUser contributionsMediaWiki 1.34.1http://xdandroid.com/w/index.php?title=Rootfs.img&diff=1298Rootfs.img2011-06-13T03:46:54Z<p>Raf: +downloads link</p>
<hr />
<div>'''<code>rootfs.img</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts (read-only) at <code>/</code>.<br />
<br />
<code>rootfs.img</code> provides:<br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code><br />
* the [[Wikipedia:Radio Interface Layer|Radio Interface Layer]] (RIL) (<code>/lib/''release''/libhtcgeneric-ril.so</code>)<br />
* mount points for other XDAndroid filesystems:<br />
** <code>/cache</code><br />
** <code>/data</code> (see <code>[[data.img]]</code>)<br />
** <code>/sdcard</code><br />
** <code>/system</code> (see <code>[[system.ext2]]</code>)<br />
** …<br />
* [[keyboard]] keymaps<br />
<br />
<code>rootfs.img</code> images are not specific to a particular release of Android. I.e. a given <code>rootfs.img</code> image may work with Donut, Eclair, and Froyo.<br />
<br />
<code>rootfs.img</code> is generally stored in the <code>/andboot</code> directory of the SD card.<br />
<br />
==See also==<br />
* [[Downloads#Incremental Updates for rootfs.img]]<br />
<br />
==External links==<br />
* http://gitorious.org/xdandroid/rootfs - <code>rootfs.img</code> source code<br />
* http://files.xdandroid.com/rootfs/ - <code>rootfs.img</code> downloads</div>Rafhttp://xdandroid.com/w/index.php?title=Getting_started_XDAndroid_development&diff=1297Getting started XDAndroid development2011-06-12T21:36:00Z<p>Raf: rootfs</p>
<hr />
<div>This is a page written for programmers who are interested on developing for XDAndroid, but have no embedded Linux or Android knowledge. It should help you getting started on producing code and fixing bugs in no time.<br />
<br />
<br />
==Supported devices==<br />
XDAndroid supports a series of HTC phones based on [http://www.qualcomm.com/products_services/chipsets/mobile_processors.html Qualcomm MSM] chipset. Those are the HTC Raphael/Diamond, Topaz, Rhodium, and Blackstone. To find exactly what is your device, open it, remove the battery and look for a model line. For example, the HTC Touch Pro 2 will have this line :<br />
<br />
HTC Touch Pro2 T7373 RHOD100 5VDC = 1A Made in Taiwan<br />
<br />
It means the device should be identified as '''RHOD100'''. Codes vary, such as '''RHOD400''', '''RHOD500'''. You have to know your device code in order to properly identify your device for other people and also to find the right configuration/documentation regarding your device's specific hardware.<br />
<br />
Check the [[Supported Devices]] for more info.<br />
<br />
<br />
==Exploring XDAndroid==<br />
<br />
These are the parts that make XDAndroid. We will explore each of these topics.<br />
<br />
* The [[HaRET]] boot loader<br />
* Initrd<br />
* [[rootfs.img|rootfs]]<br />
* Modified Linux kernel for the MSM Chipset<br />
** A set of add-on kernel modules, that can be called by applications<br />
* A modified Android build<br />
** A set of proprietary Google/HTC software taken from other sources.<br />
<br />
<br />
==[[HaRET]] boot loader==<br />
Currently XDAndroid boots from Windows CE. HaRET is used as a boot loader. On Windows CE, you should place the Kernel (zImage file), the initrd (initrd.gz file), the special boot parameters (startup.txt file) and HaRET (haret.exe) on the SD card filesystem, in the same directory (usually /andboot), and then run HaRET.exe. The startup.txt file must be changed to pass kernel-specific information that will enable/configure your device correctly. The [[XDAndroidStartup]] program for Windows Mobile can correctly set the startup.txt file, given your device id code.<br />
<br />
Here is the boot sequence for Android :<br />
<br />
# HaRET starts, and reads the startup.txt file - startup.txt informs the location of kernel, initrd and boot parameters<br />
# HaRET loads the kernel and the initrd to the memory<br />
# HaRET boots the kernel passing along the parameters<br />
# The kernel mounts the initrd disk on a memory filesystem<br />
# Initrd does ???<br />
# ???<br />
# Initrd loads the rootfs from the SD card, mounts it, and sets it as the new root filesystem<br />
# ???<br />
# [[system.ext2]] is mounted at <code>/system</code><br />
# ????<br />
# Android Starts<br />
<br />
==Initrd==<br />
If you don't know what a initrd is, and its relation the the kernel, you should read [http://www.mjmwired.net/kernel/Documentation/initrd.txt the official Kernel.org initrd documentation]. On XDAndroid, the initrd:<br />
<br />
*Prepares the system for the rootfs to be mounted (TODO: Explain what "prepare the system" is)<br />
*Mounts the a new root file system using the rootfs image.<br />
*TODO: List any other initrd functions<br />
<br />
==rootfs==<br />
<br />
*responsible for the key maps<br />
*TODO: list other features for rootfs<br />
<br />
==Qualcomm-S-MSM Linux Kernel==<br />
The kernel used by XDAndroid is located at [http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm gitorious linux-on-qualcomm-s-msm repo]. This kernel is branched from Google's Android kernel, modified to support Qualcomm-specific hardware. The kernel is responsible for (almost) all the hardware support, including display, camera, Wi-Fi, audio, power management, etc. With a proper kernel, even a generic build of Android using the vanilla source code from google should bring up the phone.<br />
<br />
===Add-on Kernel Modules===<br />
A modules-2.6.xxxxxxxx.tar.gz file will most times be packed with the kernel. Those represent some kernel modules that weren't integraded on the kernel either because they are closed-source, hard to integrate, or not used. The wifi kernel module resides on this package, and it is later on loaded and used via the libhardware_legacy on userland. The Netfilter module, with is also not used, will also go into this directory.<br />
<br />
<br />
==Modified Android Build==<br />
Android is composed of multiple software sources that together make up the whole system. XDAndroid uses the official Google Android repository (git://android.git.kernel.org/) and its own gittorious repository. To manage the commits/syncs at the same base on different repositories, Android and XDAndroid use a Google tool to work with multiple git repositories called Repo.<br />
<br />
TODO: Understand how .repo/manifest.xml file really works<br />
<br />
<br />
<br />
==The Android build system==<br />
Android has a very complex build system. For compiling a port to a specific device, you have to :<br />
<br />
# Create a Company Directory (ours is xdandroid)<br />
# Create a products and a boards dir (ours it msm)<br />
# Define a product in a .mk file(s) inside the products folder<br />
# Define a board in a .mk file(s) inside the boards folder<br />
# Create mandatory configuration files (such as BoardConfig.mk, AndroidProducts.mk)<br />
# Create a buildspec.mk on the root folder<br />
# call make<br />
<br />
The Android build system will automagically create a build for your product on the //out directory. It's important to note that everything that gets on the build will be somehow linked or referenced via the definition files, so it's important to understand it, and figure out what it links to. So next we learn more about the XDAndroid company folder.<br />
<br />
===The XDAndroid Product Tree===<br />
<br />
It is located at //device/xandroid/msm. It serves both as an android board folder (has definition for boards) and as an android products folder (has definition for products). This is what we find in our company folder : <br />
<br />
*'''''Board Config Files :''''' <br />
**AndroidBoard.mk (board makefile, defines settings for all products using this board)<br />
**BoardConfig.mk (compile-time definitions. TODO : Find out the difference between this file and AndroidBoard.mk)<br />
*'''''Product Definition Files : '''''<br />
**AndroidProducts.mk (list of all products makefiles in this product folder)<br />
**generic_msm.mk (another root product define - could be used to make a clean default build)<br />
**full_msm.mk (the main root product define file)<br />
***device_msm.mk (gets inherited by full_msm.mk )<br />
***device_msm_us/as/eu.mk (gets inherited by full_msm.mk )<br />
*'''''Files that will just get copied to the final build'''''<br />
**Overlay - Directory (resources that replace Android original resource files - copied with overlay definition)<br />
**bootanimation.zip (nice XDA boot animation - to /system/media)<br />
**apns-conf.xml (complete list of worldwide data connection info. to /system/etc)<br />
**media_profiles.xml (configuration for media/video/music features. to /system/etc)<br />
**egl.cfg (open gl configuration. Passed to build system by Board Config Files via parameter)<br />
**h2w_headset.kl (key maps for the USB headset. TODO: find out who copies this)<br />
**vold.fstab (android fstab, defines that our sdcard should be mounted at /sdcard)<br />
**wlan.ko (binary, will probably get copied to somewhere TODO : FIND OUT WHO COPIES IT)<br />
**init.xdandroid.rc (android-init-language init file. TODO: find who copies this)<br />
* ''''' Helper Scripts '''''<br />
**Tools - Directory (Set of helper scripts)<br />
***generate_release_image.sh --- ???<br />
***release_manifest.sh --- ???<br />
**unzip-files.sh (extracts all proprietary software (gapps, hw3d, etc) into a //vendor directory)<br />
**setup-makefiles.sh (seens to be related to including proprietary code in TODO : FIND OUT THAT THIS IS )<br />
* '''''Other files evaluated by Android Build System'''''<br />
**vendorsetup.sh (called by build/envsetup.sh - adds a lunch option TODO: FIND OUT WHY WE NEED THIS)<br />
**system.prop (modify system properties - pixel density, etc)<br />
* ''''' Empty or all-commented files '''''<br />
**CleanSpec.mk (comented-out file, in future could be used to define clean-steps for the build system)<br />
**froyo.build (Empty file ??? TODO: find out why it exists)<br />
**kernel (Empty file, if we want to use it, we should set TARGET_PREBUILT_KERNEL to true and copy kernel to this file)<br />
<br />
<br />
<br />
<br />
<br />
====Board Config Files====<br />
<br />
*They define<br />
** TARGET_BOARD_PLATFORM, TARGET_CPU_ABI, TARGET_ARCH_VARIANT, TARGET_BOOTLOADER_BOARD_NAME with our string variables<br />
** TARGET_NO_BOOTLOADER to True, since we are using HaRET<br />
** WITH_JIT, ENABLE_JSC_JIT, to use JIT to speedup<br />
** BOARD_WPA_SUPPLICANT_DRIVER, BOARD_WPA_SUPPLICANT_PRIVATE_LIB, BOARD_WLAN_TI_STA_DK_ROOT, WIFI_DRIVER_MODULE_PATH, WIFI_DRIVER_MODULE_ARG, WIFI_DRIVER_MODULE_NAME, WIFI_DRIVER_FW_AP_PATH, WIFI_FIRMWARE_LOADER to correctly set Wifi<br />
** BOARD_KERNEL_CMDLINE := no_console_suspend=1 <br />
** BOARD_HAVE_BLUETOOTH := true, BOARD_HAVE_BLUETOOTH_BCM := true # Rhodium has Broadcom bluetooth<br />
** BOARD_VENDOR_USE_AKMD := true ????<br />
** USE_PV_WINDOWS_MEDIA := false<br />
** BUILD_WITH_FULL_STAGEFRIGHT := true ???<br />
** BOARD_NO_GL2, BOARD_GL_TEX_POW2_DIMENSION_REQUIRED := true # Our hardware is not OpenGLES-2 capable<br />
** BOARD_EGL_CFG := device/xdandroid/msm/egl.cfg<br />
** BOARD_BOOTIMAGE_MAX_SIZE, BOARD_RECOVERYIMAGE_MAX_SIZE, BOARD_SYSTEMIMAGE_MAX_SIZE, BOARD_USERDATAIMAGE_MAX_SIZE, BOARD_FLASH_BLOCK_SIZE<br />
** USE_CAMERA_STUB := false<br />
** PRODUCT_PROPERTY_OVERRIDES = ro.com.android.dataroaming=false (don't allow data when roaming, a wise setting)<br />
*They include<br />
**vendor/xdandroid/msm/BoardConfigVendor.mk<br />
**vendor/xdandroid/msm/AndroidBoardVendor.mk<br />
*They copy<br />
**h2w_headset.kl to TARGET_OUT_KEYLAYOUT<br />
**init.xdandroid.rc to TARGET_ROOT_OUT<br />
**vold.fstab to /system/etc<br />
** froyo.build file gets passed on LOCAL_SRC_FILES variable<br />
<br />
====Product Definition Files====<br />
These are the full_msm.mk, device_msm.mk, device_msm_us/as/eu.mk.<br />
<br />
*They inherit from<br />
**languages_full.mk, making the final build have a full list of languages<br />
**full.mk, making our build a "complete" one.<br />
**device/common/gps/gps_us_supl.mk (sets us ntp server and google supl server for a-gps lock)<br />
**vendor/xdandroid/msm/device_msm_us-vendor.mk<br />
**vendor/xdandroid/msm/device_msm-vendor.mk<br />
*They define<br />
** PRODUCT_NAME, PRODUCT_DEVICE, PRODUCT_MODEL, PRODUCT_MANUFACTURER with our string settings<br />
**DEVICE_PACKAGE_OVERLAYS with our overlay folder<br />
**PRODUCT_LOCALES to support hdpi screen density<br />
**PRODUCT_PACKAGES [Gallery,PinyinIME, OpenWnn, libWnnEngDic, libWnnJpnDic, libwnndict]<br />
**PRODUCT_PROPERTY_OVERRIDES, to set the supported opengles version (ro.opengles.version=65536)<br />
*They copy<br />
**frameworks/base/data/etc/ [core_hardware, camera.autofocus, telephony.gsm, location.gps, wifi] to system/etc/permissions/<br />
**media_profiles.xml and apns-conf.xml to /system/etc<br />
**bootanimation.zip to and apns-conf.xml to /system/media<br />
<br />
====Helper Scripts====<br />
<br />
*generate_release_image.sh --- ???<br />
*release_manifest.sh --- ???<br />
*unzip-files.sh (extracts all proprietary software (gapps, hw3d, etc) into a //vendor directory)<br />
*setup-makefiles.sh (seens to be related to including proprietary code in TODO: FIND OUT THAT THIS IS)<br />
<br />
<br />
====Other files evaluated by Android Build System====<br />
<br />
*system.prop<br />
**Sets the LCD pixel density, the default network type (WCDMA ???) and <br />
**rild.libpath=/lib/froyo/libhtcgeneric-ril.so<br />
*build/envsetup.sh -- ???<br />
<br />
<br />
<br />
<br />
For convinience, on XDAndroid, the root makefile ( originally at //core/root.mk) was copied to //Makefile. So, to call Android's build system, you call make on the root folder. The build system will load the buildspec.mk file, and create a build based on the parameters on that file, specially the TARGET_PRODUCT parameter. The build system creates the buid on out/product/msm .<br />
<br />
==References==<br />
*[http://pdk.android.com/online-pdk/guide/index.html Android.com Plataform developer guide]<br />
*[http://www.johandekoning.nl/index.php/2009/06/23/contribute-to-android-my-repogit-adventure/ Guide showing how to make a path to the official android repo]</div>Rafhttp://xdandroid.com/w/index.php?title=Keyboard&diff=1296Keyboard2011-06-12T21:34:21Z<p>Raf: root filesystem image</p>
<hr />
<div>'''Keyboard''' layouts are affected by the "physkeyboard" [[kernel boot command-line parameters|kernel boot command-line parameter]].<br />
<br />
The [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] app allows for changing the behavior of the "end" button.<br />
<br />
manekineko maintains an alternative [[rootfs.img|root filesystem image]] that changes some keyboard mappings.<ref>http://forum.ppcgeeks.com/2043067-post1.html</ref><br />
<br />
F22 maintains an alternative root filesystem image that allows you to change all sorts of button-mapping related things.<ref>http://forum.xda-developers.com/showthread.php?t=935710</ref><br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=Rootfs.img&diff=1295Rootfs.img2011-06-12T21:33:42Z<p>Raf: +kb keymaps</p>
<hr />
<div>'''<code>rootfs.img</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts (read-only) at <code>/</code>.<br />
<br />
<code>rootfs.img</code> provides:<br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code><br />
* the [[Wikipedia:Radio Interface Layer|Radio Interface Layer]] (RIL) (<code>/lib/''release''/libhtcgeneric-ril.so</code>)<br />
* mount points for other XDAndroid filesystems:<br />
** <code>/cache</code><br />
** <code>/data</code> (see <code>[[data.img]]</code>)<br />
** <code>/sdcard</code><br />
** <code>/system</code> (see <code>[[system.ext2]]</code>)<br />
** …<br />
* [[keyboard]] keymaps<br />
<br />
<code>rootfs.img</code> images are not specific to a particular release of Android. I.e. a given <code>rootfs.img</code> image may work with Donut, Eclair, and Froyo.<br />
<br />
<code>rootfs.img</code> is generally stored in the <code>/andboot</code> directory of the SD card.<br />
<br />
==See also==<br />
* [[Downloads#Incremental Updates for rootfs.img]]<br />
<br />
==External links==<br />
* http://gitorious.org/xdandroid/rootfs</div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1294FAQ2011-06-12T21:31:17Z<p>Raf: rootfs</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]])?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
The 'max' you can overclock varies by device, and some devices can be pushed farther than others. It seems best to establish what max you can hit in WinMo, and apply that to Android (disable OC in WinMo before booting Android...) Anything over 700 seems risky, although some RHODs run up in the 800+ range without issue. If you're having problems, ramp this value down first, if not completely disabling it before moving on to other troubleshooting steps.<br />
<br />
== HaRET failing to boot? ==<br />
:''See also [[HaRET]].''<br />
# Don't overclock WinMo.<br />
# Look over the directions in the build thread again. Make sure you have all the necessary files, in the correct location.<br />
# If it's still failing to boot, format your SD card using the [http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe HP Tool] (for Linux, whatever tool seems to do the job &mdash; it's just the built-in Windows/WinMo format utilities that seem broken...)<br />
<br />
== How can I update? ==<br />
<br />
Well if you're adventurous and want to try upgraded the components of the build, see the [[Incremental Updates]] page.<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== Why can Android not see my SD card? It says "No SD inserted"!! ==<br />
<br />
Well, the theory is the built-in Windows and WinMo format utilities are broken. Backup all the data on the card, do a full format, FAT32 on the card using the [http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe HP Tool]. Restore all the data on the card, and apps within Android should now see the card.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet (scratch that, on kernels after [http://zimages.googlecode.com/files/htc-msm-linux-20110506_232639-package.tar.bz2 1313] native USB tethering works!!), but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=1099481 Further Reading] (thanks slycker)<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
== How can I theme the build? ==<br />
<br />
Entropy512 has created [http://forum.xda-developers.com/showpost.php?p=14514109&postcount=1516 a post] on this subject.<br />
<br />
== Can I store apps on the SD card / I'm out of space!! ==<br />
<br />
Well first of all, everything is on the SD card - so the apps are already on your SD card. Please don't use app2sd for this reason... it won't work. However, instead of being directly on the SD they're stored in this <tt>data.img</tt> file (along with every other user-related thing like SMS's, phone call log, etc etc). So if you go to Settings -> SD Card & Phone Storage -> "Internal phone storage" is basically this <tt>data.img</tt> file. There is a pretty slick app that allows you to expand the size of this file - just make sure you have the space on your SD! [http://forum.xda-developers.com/showthread.php?t=824154 Data Expansion Tool]<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - Fix is in the works. See [http://forum.xda-developers.com/showthread.php?t=1076884 this thread] for more information on how to manually setup the fix. Not easy! Still a WIP as well.<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - everything except USB Mass Storage should work in respect to USB<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== WiFi doesn't work at all? ==<br />
<br />
If you upgraded your kernel (see [[Incremental Updates]]) then make sure the modules-xxxx.tar.gz file matches the kernel (zImage).<br />
<br />
WEP doesn't work, see below.<br />
<br />
If you have tried to use WiFi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue. Not everyone needs this fix, and we haven't determined why some do and others do not...<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
'''Note''' - there's an additional bug that is RHOD400/500 specific (worldphone in GSM mode only!!!) - if you are using a kernel after [http://zimages.googlecode.com/files/htc-msm-linux-20110210_213850-package.tar.bz2 1253] (aka 20110210_213850) the radio will shut off with the screen, causing missed calls, messages, etc. Stick to 1253 if you're using a RHOD400/500 worldphone as a GSM device until the issue is resolved.<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified [[rootfs.img|rootfs]] ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it in AndroidApps/Other) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=Version_FRX01&diff=1293Version FRX012011-06-12T21:30:51Z<p>Raf: rootfs, formatting</p>
<hr />
<div>XDAndroid 2.2 Build FRX01 is the project's first official release of the Froyo series of Android. This is also the first release to use an official build number.<br />
<br />
==Changes since final release candidate==<br />
* Added full language pack<br />
* Added Chinese and Japanese IMEs<br />
* Boot animation speedup (<code>ro.opengles.version=1</code> sync from upstream)<br />
* GApps package update (thanks to [[CyanogenMod]])<br />
* Replace Gallery3D with Gallery, for stability improvement<br />
* Several changes to enable userland Camera support (from bzo, still needs kernel support)<br />
* Userland built-in WiFi tethering support for Rhodium ([[rootfs.img|rootfs]] changes and testing needed)<br />
* Signed XDAndroid release packages<br />
* Updated startup configs<br />
* Using andboot as default root directory</div>Rafhttp://xdandroid.com/w/index.php?title=Version_20100503&diff=1292Version 201005032011-06-12T21:28:01Z<p>Raf: links</p>
<hr />
<div>The 20100503 version of XDAndroid is the first to feature a custom-built version of the Android Open-source Project version 2.1. This version is also the first to integrate into the [[XDAndroid Kitchen]].<br />
<br />
This version was released on 03 May 2010.<br />
==Change Log==<br />
* A fully custom-built AOSP 2.1-update1 base system<br />
* All incremental updates to the kernel and [[rootfs.img|rootfs]] from the 20100331 release until 03 May 2010.<br />
* Updated LED Effects program by chamonix<br />
* home++<br />
* Battery Indicator<br />
* IO file Manager<br />
* [https://market.android.com/details?id=com.rechild.advancedtaskkiller Advanced Task Killer]<br />
* XDA forum app<br />
* Fixed Startup.txt files</div>Rafhttp://xdandroid.com/w/index.php?title=Downloads&diff=1291Downloads2011-06-12T21:26:32Z<p>Raf: +rootfs.img</p>
<hr />
<div>The XDAndroid project makes occasional releases of full system packages. For details on how to use the release packages, please see the [[Installation Guide]].<br />
<br />
==Latest Release==<br />
The current XDAndroid release package is {{Latest Release}} and can be downloaded [{{Latest Release URL}} here]. This release is considered stable, but incomplete. Some features are not yet implemented or properly supported.<br />
<br />
==Files Repository==<br />
The XDAndroid Project has a [http://files.xdandroid.com/ historical files repository]. This repository includes most previous release packages. In addition to those packages, the repository holds various fragments of XDAndroid system development as needed for collaboration amongst the project developers.<br />
<br />
==Incremental Updates for zImage==<br />
As kernel development continues, new images are built automatically as needed. These images are available on the [http://glemsom.users.anapnea.net/android2/htc-msm-linux/ XDAndroid kernel build service]. Please see [[Incremental Updates]] for information on using these updated packages in between XDAndroid project releases. The latest available kernel build is {{Latest kernel}}, available for download [{{Latest kernel URL}} here].<br />
<br />
==Incremental Updates for rootfs.img==<br />
As XDAndroid system development continues, new root filesystem images (<code>[[rootfs.img]]</code>) are built automatically as needed. These images are available on the [http://files.xdandroid.com/rootfs/ XDAndroid rootfs build service]. Please see [[Incremental Updates]] for information on using these updated packages in between XDAndroid project releases. The latest available rootfs package is {{Latest rootfs}}, available for download [{{Latest rootfs URL}} here].<br />
<br />
==Rare Incremental Updates for initrd.gz==<br />
The system initialization process is considered stable and is not likely to change much in future development. This may change as the project reaches advanced stages and is able to be flashed to devices. However, there will probably be little further development on the initrd.gz package. The initrd.gz package is built automatically as needed and updates are available on the [http://files.xdandroid.com/initramfs/ XDAndroid initrd build service]. Please see [[Incremental Updates]] for information on using these updated packages in between XDAndroid project releases. The latest available initrd package is {{Latest initrd}}, available for download [{{Latest initrd URL}} here].<br />
<br />
==Links==<br />
* [http://files.xdandroid.com] - XDAndroid Files Repository<br />
* [http://glemsom.anapnea.net/android2/htc-msm-linux/] - Automated Kernel Build Service<br />
* [http://xdandroid.southcape.org/rootfs/] - Automated rootfs Build Service<br />
* [http://xdandroid.southcape.org/initramfs/] - Automated initrd Build Service</div>Rafhttp://xdandroid.com/w/index.php?title=Rootfs.img&diff=1290Rootfs.img2011-06-12T21:24:47Z<p>Raf: links</p>
<hr />
<div>'''<code>rootfs.img</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts (read-only) at <code>/</code>.<br />
<br />
<code>rootfs.img</code> provides:<br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code><br />
* the [[Wikipedia:Radio Interface Layer|Radio Interface Layer]] (RIL) (<code>/lib/''release''/libhtcgeneric-ril.so</code>)<br />
* mount points for other XDAndroid filesystems:<br />
** <code>/cache</code><br />
** <code>/data</code> (see <code>[[data.img]]</code>)<br />
** <code>/sdcard</code><br />
** <code>/system</code> (see <code>[[system.ext2]]</code>)<br />
** …<br />
<br />
<code>rootfs.img</code> images are not specific to a particular release of Android. I.e. a given <code>rootfs.img</code> image may work with Donut, Eclair, and Froyo.<br />
<br />
<code>rootfs.img</code> is generally stored in the <code>/andboot</code> directory of the SD card.<br />
<br />
==See also==<br />
* [[Downloads#Incremental Updates for rootfs.img]]<br />
<br />
==External links==<br />
* http://gitorious.org/xdandroid/rootfs</div>Rafhttp://xdandroid.com/w/index.php?title=Rootfs.img&diff=1289Rootfs.img2011-06-12T21:20:35Z<p>Raf: Created page with "'''<code>rootfs.img</code>''' is a file containing an ext2 filesystem that XDAndroid mounts (read-only) at <code>/</code>. <code>rootfs.img</code> provides: *..."</p>
<hr />
<div>'''<code>rootfs.img</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts (read-only) at <code>/</code>.<br />
<br />
<code>rootfs.img</code> provides:<br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code><br />
* the [[Wikipedia:Radio Interface Layer|Radio Interface Layer]] (RIL) (<code>/lib/''release''/libhtcgeneric-ril.so</code>)<br />
* mount points for other XDAndroid filesystems:<br />
** <code>/cache</code><br />
** <code>/data</code><br />
** <code>/sdcard</code><br />
** <code>/system</code><br />
** ...<br />
<br />
<code>rootfs.img</code> images are not specific to a particular release of Android. I.e. a given <code>rootfs.img</code> image may work with Donut, Eclair, and Froyo.<br />
<br />
<code>rootfs.img</code> is generally stored in the <code>/andboot</code> directory of the SD card.<br />
<br />
==See also==<br />
* [[Downloads#Incremental Updates for rootfs.img]]<br />
<br />
==External links==<br />
* http://gitorious.org/xdandroid/rootfs</div>Rafhttp://xdandroid.com/w/index.php?title=System.ext2&diff=1288System.ext22011-06-12T21:01:02Z<p>Raf: </p>
<hr />
<div>'''<code>system.ext2</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts at <code>/system</code>. In Android, the <code>/system</code> directory generally contains files specific to a particular Android release (Eclair, Froyo, Gingerbread), including:<br />
* the [[Wikipedia:Dalvik (software)|Dalvik]] virtual machine<br />
* [[Wikipedia:APK (file format)|APK]] package files for standard apps (<code>Phone.apk</code>, <code>Contacts.apk</code>, <code>Calendar.apk</code>, <code>Gmail.apk</code>, etc.)<br />
<br />
<code>system.ext2</code> is generated by the process described in [[Building and Packaging]].<br />
<br />
<code>system.ext2</code> is generally stored in the <code>/andboot/</code> directory of the SD card.<br />
<br />
<code>system.ext2</code> does ''not'' contain:<br />
* the [[Wikipedia:Linux kernel|Linux kernel]] (<code>zImage</code>) and associated [[Wikipedia:Loadable kernel module|kernel modules]] (<code>modules-*.tar.gz</code>) &mdash; those are maintained and released separately as <code>htc-msm-linux-''date_time''-package.tar.bz2</code><br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code> — those are provided by [[rootfs.img]]</div>Rafhttp://xdandroid.com/w/index.php?title=Building_and_Packaging_Eclair&diff=1287Building and Packaging Eclair2011-06-12T20:53:37Z<p>Raf: system.ext2</p>
<hr />
<div>:''See [[Building and Packaging]] for ''Froyo'' and newer versions of Android.''<br />
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.<br />
<br />
Before commencing with the complete build, it may be necessary to provide dependencies for the system.<br />
<br />
==Build Dependencies==<br />
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 [http://developer.htc.com/adp.html HTC Developer Center website], via the <tt>signed-dream_devphone_userdebug-ota-14721.zip</tt> 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.<br />
<br />
If, while configuring the build system via <tt>buildspec.mk</tt>, 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 [http://www.mediafire.com/?hy2yj42my3i external filesharing mirror]. Save this file in the root directory of the XDAndroid source tree, under the same name.<br />
<br />
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...<br />
<br />
<syntaxhighlight lang="bash"><br />
$ cd vendor/xdandroid/msm<br />
$ ./unzip-files.sh<br />
</syntaxhighlight><br />
<br />
The files will be extracted and available to the build system.<br />
<br />
==Building the System==<br />
This ''highly convoluted'' step will eventually spit out a number of filesystem images, including one containing the XDAndroid system.<br />
<br />
To build the system, execute the following extremely complicated command from the root directory of the XDAndroid source tree...<br />
<br />
<syntaxhighlight lang="bash"><br />
$ make -j4 # A -jX argument based on the number of CPUs available, plus one, is recommended.<br />
</syntaxhighlight><br />
<br />
After several weeks, the build will be complete and the system is ready for packaging.<br />
<br />
==Packaging the System==<br />
The Android build system, which hopefully went off without a hitch, will have generated a number of filesystem images in <tt>out/target/product/msm</tt> under the root directory of the source tree.<br />
<br />
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 <tt>system.img</tt>, which contains the binaries generated by the compilation process.<br />
<br />
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 <tt>[[system.ext2]]</tt> and placed in the user's <tt>andboot</tt> directory for a successful boot.<br />
<br />
Optionally, the system image can be repacked as a SquashFS file system, for smaller size. Instructions on completing this step will follow shortly.</div>Rafhttp://xdandroid.com/w/index.php?title=System.ext2&diff=1286System.ext22011-06-12T20:52:51Z<p>Raf: +Building and Packaging</p>
<hr />
<div>'''<code>system.ext2</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts at <code>/system</code>. In Android, the <code>/system</code> directory generally contains files specific to a particular Android release (Eclair, Froyo, Gingerbread):<br />
* the [[Wikipedia:Dalvik (software)|Dalvik]] virtual machine<br />
* [[Wikipedia:APK (file format)|APK]] package files for standard apps (<code>Phone.apk</code>, <code>Contacts.apk</code>, <code>Calendar.apk</code>, <code>Gmail.apk</code>, etc.)<br />
<br />
<code>system.ext2</code> is generated by the process described in [[Building and Packaging]].<br />
<br />
<code>system.ext2</code> is generally stored in the <code>/andboot/</code> directory of the SD card.<br />
<br />
<code>system.ext2</code> does ''not'' contain:<br />
* the [[Wikipedia:Linux kernel|Linux kernel]] (<code>zImage</code>) and associated [[Wikipedia:Loadable kernel module|kernel modules]] (<code>modules-*.tar.gz</code>) &mdash; those are maintained and released separately as <code>htc-msm-linux-''date_time''-package.tar.bz2</code><br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code> — those are provided by [[rootfs.img]]</div>Rafhttp://xdandroid.com/w/index.php?title=Building_and_Packaging&diff=1285Building and Packaging2011-06-12T20:47:52Z<p>Raf: system.ext2</p>
<hr />
<div>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.<br />
<br />
<div class="warning">'''NOTE''' The following build procedures are for the <tt>froyo</tt> branch and newer. For <tt>eclair</tt> build procedures, please see [[Building and Packaging Eclair]].</div><br />
<br />
Before commencing with the complete build, it may be necessary to provide dependencies for the system.<br />
<br />
==Build Dependencies==<br />
XDAndroid runs on hardware similar to the HTC G1 and Android Dev Phone. As a result, XDAndroid takes advantage of the similarities by using certain proprietary libraries as provided by the reference system for the Dev Phone. Before building the system, download the Dev Phone system image, <tt>signed-dream_devphone_userdebug-ota-14721.zip</tt>, from [http://developer.htc.com/adp.html HTC Developer Center]. Place the zip file in the root of your XDAndroid source tree and '''do not extract it'''.<br />
<br />
Hardware-accelerated 3D graphics are also available using a proprietary driver originally developed for the HTC Dream. A new driver compatible with gingerbread and later releases, supporting OpenGL-ES version 1.1, is [http://www.mediafire.com/file/b7a6v7eeg8pr3e3/hw3d-20110311.zip available for download]. Place that zip in the root of your XDAndroid source tree and '''do not extract it'''.<br />
<br />
Camera support requires a modified proprietary binary library, and the system will not build without this library. A zip file containing the library is available as [http://www.mediafire.com/?b2348y0pg9948p4 liboemcamera.zip]. Place that zip in the root of your XDAndroid source tree and '''do not extract it'''.<br />
<br />
Additionally, XDAndroid optionally allows installation of Google's proprietary programs. These programs provide the most popular common features of Android systems. It is usually recommended to install these. A script, located in the device/xdandroid repository of the AOSP build tree, will automatically download the currently-supported Google Apps package, then extract it and configure the build tree to use it.<br />
<br />
With the needed packages stored in the XDAndroid root, run a script to automatically extract the files and configure the build system:<br />
<syntaxhighlight lang="bash"><br />
$ cd device/xdandroid/msm<br />
$ ./unzip-files.sh -g # Use -g to download the Google Apps package.<br />
</syntaxhighlight><br />
<br />
The files will be extracted and available to the build system.<br />
<br />
==Building the System==<br />
This ''highly convoluted'' step will eventually spit out a number of filesystem images, including one containing the XDAndroid system.<br />
<br />
To build the system, execute the following extremely complicated command from the root directory of the XDAndroid source tree...<br />
<br />
<syntaxhighlight lang="bash"><br />
$ make -j4 # A -jX argument based on the number of CPUs available, plus one, is recommended.<br />
</syntaxhighlight><br />
<br />
<div class="warning">'''NOTE''' When building a <tt>froyo</tt> image, it may be necessary to add /sbin to your PATH, if building ext2 filesystem images. If so, use the following command instead: <tt>PATH="${PATH}:/sbin" make -j4</tt></div><br />
<br />
After several weeks, the build will be complete and the system is ready for packaging.<br />
<br />
==Packaging the System==<br />
The Android build system, which hopefully went off without a hitch, will have generated a number of filesystem images in <tt>out/target/product/msm</tt> under the root directory of the source tree.<br />
<br />
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 <tt>system.img</tt>, which contains the binaries generated by the compilation process.<br />
<br />
If the recommendations given in [[Build Configuration]] have been followed, the filesystem images will be ext2. This is usable as-is with the current boot process that the XDAndroid project uses, and it can be renamed <tt>[[system.ext2]]</tt> and placed in the user's <tt>andboot</tt> directory for a successful boot.<br />
<br />
Optionally, the system image can be repacked as a SquashFS file system, for smaller size. Instructions on completing this step will follow shortly.</div>Rafhttp://xdandroid.com/w/index.php?title=Build_Configuration&diff=1284Build Configuration2011-06-12T20:47:14Z<p>Raf: system.ext2</p>
<hr />
<div>With the XDAndroid source checked out, the build system must be configured to build an XDAndroid product for one of the [[Supported Devices|supported targets]]. Build system configuration is done via a single file in the root of the XDAndroid source tree whose name is <tt>buildspec.mk</tt>. The following configuration documentation applies to <tt>gingerbread</tt> and later branches.<br />
<br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>froyo</tt> branch, please see [[Froyo Build Configuration]].</div><br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>eclair</tt> branch, please see [[Eclair Build Configuration]].</div><br />
<br />
The Android build system will use <tt>buildspec.mk</tt> to pass a variety of variables to the <tt>make</tt> program which parses all of the Makefile recipes that comprise the build system. Most of the variables supported by <tt>buildspec.mk</tt> are self-explanatory, especially after becoming familiar with the basics of an Android system.<br />
<br />
==Build System Configuration==<br />
Simply create a blank plain-text file in the root of your XDAndroid source tree. Name the file <tt>buildspec.mk</tt> and edit it with your preferred text editor.<br />
<br />
Variables are each defined on their own single line. Similar to other configuration files, anything which proceeds a pound sign (#) is ignored as a comment.<br />
<br />
To instruct the build system to generate an XDAndroid system image, the following variables '''must''' be defined in <tt>buildspec.mk</tt>...<br />
<br />
<syntaxhighlight lang="make"># Configure for an XDAndroid user-debugging target.<br />
TARGET_PRODUCT := full_msm<br />
TARGET_BUILD_VARIANT := userdebug<br />
TARGET_BUILD_TYPE := release<br />
TARGET_USERIMAGES_USE_EXT2 := true</syntaxhighlight><br />
<br />
The final line in the above example, which enables <tt>TARGET_USERIMAGES_USE_EXT2</tt>, will have the Android build system generate ext2 filesystems. On the live device, these filesystems are mounted writable. The XDAndroid boot process supports an ext2-based system partition image, named <tt>[[system.ext2]]</tt> on the SD card. This is highly recommended.<br />
<br />
After completing the build configuration and saving the <tt>buildspec.mk</tt> file, you can proceed with [[Building and Packaging]] the system.</div>Rafhttp://xdandroid.com/w/index.php?title=Getting_started_XDAndroid_development&diff=1283Getting started XDAndroid development2011-06-12T20:46:15Z<p>Raf: system.ext2 mounted at /system</p>
<hr />
<div>This is a page written for programmers who are interested on developing for XDAndroid, but have no embedded Linux or Android knowledge. It should help you getting started on producing code and fixing bugs in no time.<br />
<br />
<br />
==Supported devices==<br />
XDAndroid supports a series of HTC phones based on [http://www.qualcomm.com/products_services/chipsets/mobile_processors.html Qualcomm MSM] chipset. Those are the HTC Raphael/Diamond, Topaz, Rhodium, and Blackstone. To find exactly what is your device, open it, remove the battery and look for a model line. For example, the HTC Touch Pro 2 will have this line :<br />
<br />
HTC Touch Pro2 T7373 RHOD100 5VDC = 1A Made in Taiwan<br />
<br />
It means the device should be identified as '''RHOD100'''. Codes vary, such as '''RHOD400''', '''RHOD500'''. You have to know your device code in order to properly identify your device for other people and also to find the right configuration/documentation regarding your device's specific hardware.<br />
<br />
Check the [[Supported Devices]] for more info.<br />
<br />
<br />
==Exploring XDAndroid==<br />
<br />
These are the parts that make XDAndroid. We will explore each of these topics.<br />
<br />
* The [[HaRET]] boot loader<br />
* Initrd<br />
* rootfs<br />
* Modified Linux kernel for the MSM Chipset<br />
** A set of add-on kernel modules, that can be called by applications<br />
* A modified Android build<br />
** A set of proprietary Google/HTC software taken from other sources.<br />
<br />
<br />
==[[HaRET]] boot loader==<br />
Currently XDAndroid boots from Windows CE. HaRET is used as a boot loader. On Windows CE, you should place the Kernel (zImage file), the initrd (initrd.gz file), the special boot parameters (startup.txt file) and HaRET (haret.exe) on the SD card filesystem, in the same directory (usually /andboot), and then run HaRET.exe. The startup.txt file must be changed to pass kernel-specific information that will enable/configure your device correctly. The [[XDAndroidStartup]] program for Windows Mobile can correctly set the startup.txt file, given your device id code.<br />
<br />
Here is the boot sequence for Android :<br />
<br />
# HaRET starts, and reads the startup.txt file - startup.txt informs the location of kernel, initrd and boot parameters<br />
# HaRET loads the kernel and the initrd to the memory<br />
# HaRET boots the kernel passing along the parameters<br />
# The kernel mounts the initrd disk on a memory filesystem<br />
# Initrd does ???<br />
# ???<br />
# Initrd loads the rootfs from the SD card, mounts it, and sets it as the new root filesystem<br />
# ???<br />
# [[system.ext2]] is mounted at <code>/system</code><br />
# ????<br />
# Android Starts<br />
<br />
==Initrd==<br />
If you don't know what a initrd is, and its relation the the kernel, you should read [http://www.mjmwired.net/kernel/Documentation/initrd.txt the official Kernel.org initrd documentation]. On XDAndroid, the initrd:<br />
<br />
*Prepares the system for the rootfs to be mounted (TODO: Explain what "prepare the system" is)<br />
*Mounts the a new root file system using the rootfs image.<br />
*TODO: List any other initrd functions<br />
<br />
==rootfs==<br />
<br />
*responsible for the key maps<br />
*TODO: list other features for rootfs<br />
<br />
==Qualcomm-S-MSM Linux Kernel==<br />
The kernel used by XDAndroid is located at [http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm gitorious linux-on-qualcomm-s-msm repo]. This kernel is branched from Google's Android kernel, modified to support Qualcomm-specific hardware. The kernel is responsible for (almost) all the hardware support, including display, camera, Wi-Fi, audio, power management, etc. With a proper kernel, even a generic build of Android using the vanilla source code from google should bring up the phone.<br />
<br />
===Add-on Kernel Modules===<br />
A modules-2.6.xxxxxxxx.tar.gz file will most times be packed with the kernel. Those represent some kernel modules that weren't integraded on the kernel either because they are closed-source, hard to integrate, or not used. The wifi kernel module resides on this package, and it is later on loaded and used via the libhardware_legacy on userland. The Netfilter module, with is also not used, will also go into this directory.<br />
<br />
<br />
==Modified Android Build==<br />
Android is composed of multiple software sources that together make up the whole system. XDAndroid uses the official Google Android repository (git://android.git.kernel.org/) and its own gittorious repository. To manage the commits/syncs at the same base on different repositories, Android and XDAndroid use a Google tool to work with multiple git repositories called Repo.<br />
<br />
TODO: Understand how .repo/manifest.xml file really works<br />
<br />
<br />
<br />
==The Android build system==<br />
Android has a very complex build system. For compiling a port to a specific device, you have to :<br />
<br />
# Create a Company Directory (ours is xdandroid)<br />
# Create a products and a boards dir (ours it msm)<br />
# Define a product in a .mk file(s) inside the products folder<br />
# Define a board in a .mk file(s) inside the boards folder<br />
# Create mandatory configuration files (such as BoardConfig.mk, AndroidProducts.mk)<br />
# Create a buildspec.mk on the root folder<br />
# call make<br />
<br />
The Android build system will automagically create a build for your product on the //out directory. It's important to note that everything that gets on the build will be somehow linked or referenced via the definition files, so it's important to understand it, and figure out what it links to. So next we learn more about the XDAndroid company folder.<br />
<br />
===The XDAndroid Product Tree===<br />
<br />
It is located at //device/xandroid/msm. It serves both as an android board folder (has definition for boards) and as an android products folder (has definition for products). This is what we find in our company folder : <br />
<br />
*'''''Board Config Files :''''' <br />
**AndroidBoard.mk (board makefile, defines settings for all products using this board)<br />
**BoardConfig.mk (compile-time definitions. TODO : Find out the difference between this file and AndroidBoard.mk)<br />
*'''''Product Definition Files : '''''<br />
**AndroidProducts.mk (list of all products makefiles in this product folder)<br />
**generic_msm.mk (another root product define - could be used to make a clean default build)<br />
**full_msm.mk (the main root product define file)<br />
***device_msm.mk (gets inherited by full_msm.mk )<br />
***device_msm_us/as/eu.mk (gets inherited by full_msm.mk )<br />
*'''''Files that will just get copied to the final build'''''<br />
**Overlay - Directory (resources that replace Android original resource files - copied with overlay definition)<br />
**bootanimation.zip (nice XDA boot animation - to /system/media)<br />
**apns-conf.xml (complete list of worldwide data connection info. to /system/etc)<br />
**media_profiles.xml (configuration for media/video/music features. to /system/etc)<br />
**egl.cfg (open gl configuration. Passed to build system by Board Config Files via parameter)<br />
**h2w_headset.kl (key maps for the USB headset. TODO: find out who copies this)<br />
**vold.fstab (android fstab, defines that our sdcard should be mounted at /sdcard)<br />
**wlan.ko (binary, will probably get copied to somewhere TODO : FIND OUT WHO COPIES IT)<br />
**init.xdandroid.rc (android-init-language init file. TODO: find who copies this)<br />
* ''''' Helper Scripts '''''<br />
**Tools - Directory (Set of helper scripts)<br />
***generate_release_image.sh --- ???<br />
***release_manifest.sh --- ???<br />
**unzip-files.sh (extracts all proprietary software (gapps, hw3d, etc) into a //vendor directory)<br />
**setup-makefiles.sh (seens to be related to including proprietary code in TODO : FIND OUT THAT THIS IS )<br />
* '''''Other files evaluated by Android Build System'''''<br />
**vendorsetup.sh (called by build/envsetup.sh - adds a lunch option TODO: FIND OUT WHY WE NEED THIS)<br />
**system.prop (modify system properties - pixel density, etc)<br />
* ''''' Empty or all-commented files '''''<br />
**CleanSpec.mk (comented-out file, in future could be used to define clean-steps for the build system)<br />
**froyo.build (Empty file ??? TODO: find out why it exists)<br />
**kernel (Empty file, if we want to use it, we should set TARGET_PREBUILT_KERNEL to true and copy kernel to this file)<br />
<br />
<br />
<br />
<br />
<br />
====Board Config Files====<br />
<br />
*They define<br />
** TARGET_BOARD_PLATFORM, TARGET_CPU_ABI, TARGET_ARCH_VARIANT, TARGET_BOOTLOADER_BOARD_NAME with our string variables<br />
** TARGET_NO_BOOTLOADER to True, since we are using HaRET<br />
** WITH_JIT, ENABLE_JSC_JIT, to use JIT to speedup<br />
** BOARD_WPA_SUPPLICANT_DRIVER, BOARD_WPA_SUPPLICANT_PRIVATE_LIB, BOARD_WLAN_TI_STA_DK_ROOT, WIFI_DRIVER_MODULE_PATH, WIFI_DRIVER_MODULE_ARG, WIFI_DRIVER_MODULE_NAME, WIFI_DRIVER_FW_AP_PATH, WIFI_FIRMWARE_LOADER to correctly set Wifi<br />
** BOARD_KERNEL_CMDLINE := no_console_suspend=1 <br />
** BOARD_HAVE_BLUETOOTH := true, BOARD_HAVE_BLUETOOTH_BCM := true # Rhodium has Broadcom bluetooth<br />
** BOARD_VENDOR_USE_AKMD := true ????<br />
** USE_PV_WINDOWS_MEDIA := false<br />
** BUILD_WITH_FULL_STAGEFRIGHT := true ???<br />
** BOARD_NO_GL2, BOARD_GL_TEX_POW2_DIMENSION_REQUIRED := true # Our hardware is not OpenGLES-2 capable<br />
** BOARD_EGL_CFG := device/xdandroid/msm/egl.cfg<br />
** BOARD_BOOTIMAGE_MAX_SIZE, BOARD_RECOVERYIMAGE_MAX_SIZE, BOARD_SYSTEMIMAGE_MAX_SIZE, BOARD_USERDATAIMAGE_MAX_SIZE, BOARD_FLASH_BLOCK_SIZE<br />
** USE_CAMERA_STUB := false<br />
** PRODUCT_PROPERTY_OVERRIDES = ro.com.android.dataroaming=false (don't allow data when roaming, a wise setting)<br />
*They include<br />
**vendor/xdandroid/msm/BoardConfigVendor.mk<br />
**vendor/xdandroid/msm/AndroidBoardVendor.mk<br />
*They copy<br />
**h2w_headset.kl to TARGET_OUT_KEYLAYOUT<br />
**init.xdandroid.rc to TARGET_ROOT_OUT<br />
**vold.fstab to /system/etc<br />
** froyo.build file gets passed on LOCAL_SRC_FILES variable<br />
<br />
====Product Definition Files====<br />
These are the full_msm.mk, device_msm.mk, device_msm_us/as/eu.mk.<br />
<br />
*They inherit from<br />
**languages_full.mk, making the final build have a full list of languages<br />
**full.mk, making our build a "complete" one.<br />
**device/common/gps/gps_us_supl.mk (sets us ntp server and google supl server for a-gps lock)<br />
**vendor/xdandroid/msm/device_msm_us-vendor.mk<br />
**vendor/xdandroid/msm/device_msm-vendor.mk<br />
*They define<br />
** PRODUCT_NAME, PRODUCT_DEVICE, PRODUCT_MODEL, PRODUCT_MANUFACTURER with our string settings<br />
**DEVICE_PACKAGE_OVERLAYS with our overlay folder<br />
**PRODUCT_LOCALES to support hdpi screen density<br />
**PRODUCT_PACKAGES [Gallery,PinyinIME, OpenWnn, libWnnEngDic, libWnnJpnDic, libwnndict]<br />
**PRODUCT_PROPERTY_OVERRIDES, to set the supported opengles version (ro.opengles.version=65536)<br />
*They copy<br />
**frameworks/base/data/etc/ [core_hardware, camera.autofocus, telephony.gsm, location.gps, wifi] to system/etc/permissions/<br />
**media_profiles.xml and apns-conf.xml to /system/etc<br />
**bootanimation.zip to and apns-conf.xml to /system/media<br />
<br />
====Helper Scripts====<br />
<br />
*generate_release_image.sh --- ???<br />
*release_manifest.sh --- ???<br />
*unzip-files.sh (extracts all proprietary software (gapps, hw3d, etc) into a //vendor directory)<br />
*setup-makefiles.sh (seens to be related to including proprietary code in TODO: FIND OUT THAT THIS IS)<br />
<br />
<br />
====Other files evaluated by Android Build System====<br />
<br />
*system.prop<br />
**Sets the LCD pixel density, the default network type (WCDMA ???) and <br />
**rild.libpath=/lib/froyo/libhtcgeneric-ril.so<br />
*build/envsetup.sh -- ???<br />
<br />
<br />
<br />
<br />
For convinience, on XDAndroid, the root makefile ( originally at //core/root.mk) was copied to //Makefile. So, to call Android's build system, you call make on the root folder. The build system will load the buildspec.mk file, and create a build based on the parameters on that file, specially the TARGET_PRODUCT parameter. The build system creates the buid on out/product/msm .<br />
<br />
==References==<br />
*[http://pdk.android.com/online-pdk/guide/index.html Android.com Plataform developer guide]<br />
*[http://www.johandekoning.nl/index.php/2009/06/23/contribute-to-android-my-repogit-adventure/ Guide showing how to make a path to the official android repo]</div>Rafhttp://xdandroid.com/w/index.php?title=System.ext2&diff=1282System.ext22011-06-12T20:45:40Z<p>Raf: Created page with "'''<code>system.ext2</code>''' is a file containing an Wikipedia:ext2| filesystem that XDAndroid mounts at <code>/system</code>. In Android, the <code>/system</code> directo..."</p>
<hr />
<div>'''<code>system.ext2</code>''' is a file containing an [[Wikipedia:ext2|ext2]] filesystem that XDAndroid mounts at <code>/system</code>. In Android, the <code>/system</code> directory generally contains files specific to a particular Android release (Eclair, Froyo, Gingerbread):<br />
* the [[Wikipedia:Dalvik (software)|Dalvik]] virtual machine<br />
* [[Wikipedia:APK (file format)|APK]] package files for standard apps (<code>Phone.apk</code>, <code>Contacts.apk</code>, <code>Calendar.apk</code>, <code>Gmail.apk</code>, etc.)<br />
<br />
<code>system.ext2</code> is generally stored in the <code>/andboot/</code> directory of the SD card.<br />
<br />
<code>system.ext2</code> does ''not'' contain:<br />
* the [[Wikipedia:Linux kernel|Linux kernel]] (<code>zImage</code>) and associated [[Wikipedia:Loadable kernel module|kernel modules]] (<code>modules-*.tar.gz</code>) &mdash; those are maintained and released separately as <code>htc-msm-linux-''date_time''-package.tar.bz2</code><br />
* essential UNIX utilities such as <code>[[Wikipedia:ls|ls]]</code> and <code>[[Wikipedia:mount (Unix)|mount]]</code> — those are provided by [[rootfs.img]]</div>Rafhttp://xdandroid.com/w/index.php?title=Eclair_Build_Configuration&diff=1281Eclair Build Configuration2011-06-11T20:01:30Z<p>Raf: +Build Configuration</p>
<hr />
<div>With the XDAndroid source checked out, the build system must be configured to build an XDAndroid product for one of the [[Supported Devices|supported targets]]. Build system configuration is done via a single file in the root of the XDAndroid source tree whose name is <tt>buildspec.mk</tt>.<br />
<br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>froyo</tt> branch, please see [[Froyo Build Configuration]].</div><br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>gingerbread</tt> branch, please see [[Build Configuration]].</div><br />
<br />
The Android build system will use <tt>buildspec.mk</tt> to pass a variety of variables to the <tt>make</tt> program which parses all of the Makefile recipes that comprise the build system. Most of the variables supported by <tt>buildspec.mk</tt> are self-explanatory, especially after becoming familiar with the basics of an Android system.<br />
<br />
==Build System Configuration==<br />
Simply create a blank plain-text file in the root of your XDAndroid source tree. Name the file <tt>buildspec.mk</tt> and edit it with your preferred text editor.<br />
<br />
Variables are each defined on their own single line. Similar to other configuration files, anything which proceeds a pound sign (#) is ignored as a comment.<br />
<br />
To instruct the build system to generate an XDAndroid system image, the following variables '''must''' be defined in <tt>buildspec.mk</tt>...<br />
<br />
<syntaxhighlight lang="make"># Configure for an XDAndroid release engineering target.<br />
TARGET_PRODUCT := xdandroid_msm_us<br />
TARGET_BUILD_VARIANT := eng<br />
TARGET_BUILD_TYPE := release</syntaxhighlight><br />
<br />
The following table outlines some optional <tt>buildspec.mk</tt> flags which are used often.<br />
<br />
{|class="slimtable"<br />
!Variable<br />
!Effect<br />
|-<br />
|<tt>USE_GOOGLE_APPS := true</tt><br />
|Add extracted, proprietary Google apps to the system image.<br />
|-<br />
|<tt>KITCHEN_BUILD := true</tt><br />
|Add absolutely no proprietary bits to the system image. Used for kitchen base images.<br />
|-<br />
|<tt>WITH_JIT := true</tt><br />
|Enable the Just-in-Time compiler for the Dalvik VM.<br />
|-<br />
|<tt>TARGET_USERIMAGES_USE_EXT2 := true</tt><br />
|Build an ext2 system image (currently needed along with KITCHEN_BUILD for kitchen base images).<br />
|}<br />
<br />
After completing the build configuration and saving the <tt>buildspec.mk</tt> file, you can proceed with [[Building and Packaging]] the system.</div>Rafhttp://xdandroid.com/w/index.php?title=Froyo_Build_Configuration&diff=1280Froyo Build Configuration2011-06-11T20:01:01Z<p>Raf: +Build Configuration</p>
<hr />
<div>With the XDAndroid source checked out, the build system must be configured to build an XDAndroid product for one of the [[Supported Devices|supported targets]]. Build system configuration is done via a single file in the root of the XDAndroid source tree whose name is <tt>buildspec.mk</tt>. The following configuration documentation applies to <tt>froyo</tt> and later branches.<br />
<br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>eclair</tt> branch, please see [[Eclair Build Configuration]].</div><br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>gingerbread</tt> branch, please see [[Build Configuration]].</div><br />
<br />
The Android build system will use <tt>buildspec.mk</tt> to pass a variety of variables to the <tt>make</tt> program which parses all of the Makefile recipes that comprise the build system. Most of the variables supported by <tt>buildspec.mk</tt> are self-explanatory, especially after becoming familiar with the basics of an Android system.<br />
<br />
==Build System Configuration==<br />
Simply create a blank plain-text file in the root of your XDAndroid source tree. Name the file <tt>buildspec.mk</tt> and edit it with your preferred text editor.<br />
<br />
Variables are each defined on their own single line. Similar to other configuration files, anything which proceeds a pound sign (#) is ignored as a comment.<br />
<br />
To instruct the build system to generate an XDAndroid system image, the following variables '''must''' be defined in <tt>buildspec.mk</tt>...<br />
<br />
<syntaxhighlight lang="make"># Configure for an XDAndroid release engineering target.<br />
TARGET_PRODUCT := full_msm<br />
TARGET_BUILD_VARIANT := eng<br />
TARGET_BUILD_TYPE := release<br />
TARGET_USERIMAGES_USE_EXT2 := true</syntaxhighlight><br />
<br />
The final line in the above example, which enables <tt>TARGET_USERIMAGES_USE_EXT2</tt>, will have the Android build system generate ext2 filesystems. On the live device, these filesystems are mounted writable. The XDAndroid boot process supports an ext2-based system partition image, named <tt>system.ext2</tt> on the SD card. This is highly recommended.<br />
<br />
After completing the build configuration and saving the <tt>buildspec.mk</tt> file, you can proceed with [[Building and Packaging]] the system.</div>Rafhttp://xdandroid.com/w/index.php?title=Eclair_Build_Configuration&diff=1279Eclair Build Configuration2011-06-11T19:59:29Z<p>Raf: +Froyo Build Configuration</p>
<hr />
<div>With the XDAndroid source checked out, the build system must be configured to build an XDAndroid product for one of the [[Supported Devices|supported targets]]. Build system configuration is done via a single file in the root of the XDAndroid source tree whose name is <tt>buildspec.mk</tt>.<br />
<br />
<div class="warning">'''NOTE''' For build configuration options for the <tt>froyo</tt> branch, please see [[Froyo Build Configuration]].</div><br />
<br />
The Android build system will use <tt>buildspec.mk</tt> to pass a variety of variables to the <tt>make</tt> program which parses all of the Makefile recipes that comprise the build system. Most of the variables supported by <tt>buildspec.mk</tt> are self-explanatory, especially after becoming familiar with the basics of an Android system.<br />
<br />
==Build System Configuration==<br />
Simply create a blank plain-text file in the root of your XDAndroid source tree. Name the file <tt>buildspec.mk</tt> and edit it with your preferred text editor.<br />
<br />
Variables are each defined on their own single line. Similar to other configuration files, anything which proceeds a pound sign (#) is ignored as a comment.<br />
<br />
To instruct the build system to generate an XDAndroid system image, the following variables '''must''' be defined in <tt>buildspec.mk</tt>...<br />
<br />
<syntaxhighlight lang="make"># Configure for an XDAndroid release engineering target.<br />
TARGET_PRODUCT := xdandroid_msm_us<br />
TARGET_BUILD_VARIANT := eng<br />
TARGET_BUILD_TYPE := release</syntaxhighlight><br />
<br />
The following table outlines some optional <tt>buildspec.mk</tt> flags which are used often.<br />
<br />
{|class="slimtable"<br />
!Variable<br />
!Effect<br />
|-<br />
|<tt>USE_GOOGLE_APPS := true</tt><br />
|Add extracted, proprietary Google apps to the system image.<br />
|-<br />
|<tt>KITCHEN_BUILD := true</tt><br />
|Add absolutely no proprietary bits to the system image. Used for kitchen base images.<br />
|-<br />
|<tt>WITH_JIT := true</tt><br />
|Enable the Just-in-Time compiler for the Dalvik VM.<br />
|-<br />
|<tt>TARGET_USERIMAGES_USE_EXT2 := true</tt><br />
|Build an ext2 system image (currently needed along with KITCHEN_BUILD for kitchen base images).<br />
|}<br />
<br />
After completing the build configuration and saving the <tt>buildspec.mk</tt> file, you can proceed with [[Building and Packaging]] the system.</div>Rafhttp://xdandroid.com/w/index.php?title=Installation_Guide&diff=1277Installation Guide2011-06-09T19:22:57Z<p>Raf: wikify link</p>
<hr />
<div>Installation of the XDAndroid project releases is fairly simple. This short, concise guide will outline what must be done to boot into an XDAndroid system on your device.<br />
<br />
==Downloading and Unpacking==<br />
Download an XDAndroid project release from the [http://htcandroid.xland.cz/ files repository] ([http://xdandroid.southcape.org/ North American Mirror]). The latest system is {{Latest Release}} and may be downloaded as a system image update from here - [{{Latest Release URL}} system image only]. However, most prefer the full bundle, which is available here - [{{LatestBundleURL}} full bundle].<br />
<br />
The XDAndroid project releases are typically packed as [[Wikipedia:ZIP_(file_format)|Zip]] files. Zip and most other archives may be unpacked by the [http://7-zip.org/ 7-Zip program].<br />
<br />
XDAndroid currently requires a [[Wikipedia:MicroSD|MicroSD]] card for use. This SD card needs to be inserted into your phone and '''must''' remain in the phone while XDAndroid is running. It should be formatted (Full Format) [[Wikipedia:FAT32|FAT32]]. We recommend using the [http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe HP Tool] to format if you use Windows. The card should also be at least 512mb, with a 1gb card recommended.<br />
<br />
Unpack the entire XDAndroid 'full bundle' to the root of your SD card. If you want to extract everything into a folder (andboot, FRX06, etc) that's fine - if haret.exe et al aren't at the root of the SD, you need to specify a rel_path in the <tt>startup.txt</tt> file. More on this later.<br />
<br />
It is recommended that you update the various components of XDAndroid with incremental updates. Please see [[Incremental Updates]] for information on updating those pieces.<br />
<br />
==Configuring XDAndroid==<br />
The XDAndroid release package is unified. This means the project can release a single package which supports all of the devices capable of running the system. As a consequence, the user must do some minor configuration to tell the system which device it will be running on.<br />
<br />
This configuration is done within a <tt>startup.txt</tt> file. For convenience, a variety of <tt>startup.txt</tt> files have been provided in the <tt>STARTUPS</tt> directory wherever you extracted the package to. The appropriate <tt>startup.txt</tt> needs to be copied into the <tt>root</tt> directory (or where you run haret.exe from.) For example, I like to run Android two folders deep. Assume /sdcard is the root of the SD - so my Android install is in /sdcard/Androids/FRX06. In this case, you need to put a <tt>rel_path=Androids/FRX06</tt> statement in the <tt>startup.txt</tt> file, between the quotes after <tt>set cmdline</tt>. Obviously you need to change this statement to however your build is setup - if everything is at the root of the SD this statement is not necessary, and if everything is in a folder, <tt>andboot</tt> then <tt>[[kernel boot command-line parameters|rel_path]]=andboot</tt>. In <tt>STARTUPS</tt> is a directory for each supported device. See the table below to find which directory serves certain devices. The [[FAQ]] also has some useful tips on sorting out which device you have.<br />
<br />
{|class="slimtable"<br />
!Directory<br />
!Devices<br />
|-<br />
|<tt>RAPH</tt><br />
|GSM [[Touch Pro]]<br />
|-<br />
|<tt>RAPH800</tt><br />
|CDMA [[Touch Pro]]<br />
|-<br />
|<tt>FUZE</tt><br />
|AT&T [[Fuze]] (GSM [[Touch Pro]])<br />
|-<br />
|<tt>DIAMOND</tt><br />
|GSM [[Touch Diamond]]<br />
|-<br />
|<tt>DIAM500</tt><br />
|CDMA [[Touch Diamond]]<br />
|-<br />
|<tt>BLACKSTONE</tt><br />
|[[Touch HD]]<br />
|-<br />
|<tt>TOPAZ</tt><br />
|GSM [[Touch Diamond2]]<br />
|-<br />
|<tt>RHODIUM</tt><br />
|GSM [[Touch Pro2]]<br />
|-<br />
|<tt>TILT2</tt><br />
|AT&T [[Tilt2]] (GSM [[Touch Pro2]])<br />
|}<br />
<br />
Once the proper <tt>startup.txt</tt> is in place, the system may be booted.<br />
<br />
==Booting the System==<br />
Currently, the XDAndroid system must be booted while running Windows Mobile, using [[HaRET]] in a manner similar to [[Wikipedia:loadlin|loadlin]]. That is, it is not currently possible to boot XDAndroid immediately from the BIOS (''à la'' [[Wikipedia:GNU GRUB|GRUB]] or [[Wikipedia:LILO (boot loader)|LILO]]). This is because XDAndroid is not currently able to properly initialize all of the hardware devices, and depends on Windows Mobile to do so.<ref>[[Supported Devices#Notes]]</ref><br />
<br />
Using the Windows Mobile File Manager (or your preferred alternative), navigate to your MicroSD card and into the directory that was setup earlier.<br />
<br />
Run the program <tt>haret.exe</tt>. This will load the Linux kernel into your device's memory and begin executing it. This will cause Windows Mobile to shut down immediately and ungracefully (though due to the [[Wikipedia:TFAT|TFAT]] filesystem on the device's storage, there should be no worry of data loss).<br />
<br />
During boot, you should see console text scroll along the screen. This text is white on a black background and is part of the normal boot process.<br />
<br />
The first boot into XDAndroid will take some time. The device must do a number of things: create a data filesystem where apps and settings are stored; unpack the current kernel's modules; calibrate the screen; and set up and execute the Android system.<br />
<br />
The screen calibration is a rudimentary five-point location check very similar to what Windows Mobile does on first boot of a newly installed ROM. The program will prompt the user to tap each consecutive box in the center, firmly and shortly. After this calibration is complete, the system will begin running Android. If you have any issues with calibrating, see the [[FAQ#How do I fix a non-functioning or miscalibrated touchscreen?|FAQ]].<br />
<br />
Once the system begins to run Android itself, you will see a boot animation instead of the old console text. At this point, the first boot of Android must do quite a bit of work to install and optimize packages, configure default settings, and provision the device for the user. Overall first boot time will likely be up to 5 or 10 minutes. Even after seeing the UI/lock screen, you may want to let the device settle for a few additional minutes.<br />
<br />
==Initial Android Setup==<br />
After all the waiting, you should see a lock screen. Unlock the device and enjoy! Initially you might want to go to Settings -> Accounts & Sync and setup a gmail sync account so you can use the Market and sync your contacts.<br />
<br />
Your XDAndroid system is fully configured and ready to use. Congratulations!<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=HaRET&diff=1232HaRET2011-05-10T20:54:06Z<p>Raf: +FAQ#HaRET failing to boot?</p>
<hr />
<div>'''HaRET''' ('''Handheld Reverse Engineering Tool''') is a [[Wikipedia:Windows CE|Windows CE]] application that serves as a [[Wikipedia:Linux kernel|Linux]] [[Wikipedia:boot loader|boot loader]] and as a tool for accessing the hardware internals of a Windows CE device.<br />
<br />
HaRET uses a configuration file called "startup.txt".<br />
<br />
==Running from StartUp==<br />
Windows CE can run HaRET.exe automatically by putting a [[Wikipedia:file shortcut|shortcut]] to it in the "\Windows\StartUp" folder.<br />
<br />
However, it seems that running HaRET too soon after boot does not give Windows enough time to properly initialize the Wi-Fi device, so Wi-Fi won't work under XDAndroid. A five-second delay seems sufficient to allow Windows to initialize the hardware.<br />
<br />
If HaRET supports some sort of "sleep" command in "startup.txt," that would probably be the simplest option.<br />
<br />
A [[Wikipedia:batch file|batch file]] would be a good option, but it seems that Windows CE does not support them.<br />
<br />
This Python script is confirmed to work:<br />
<syntaxhighlight lang="python"><br />
import time, os<br />
time.sleep(5)<br />
os.startfile('\\Storage Card\\andboot\\haret.exe', 'open')<br />
</syntaxhighlight><br />
<br />
Download PythonCE.WM.CAB from http://sourceforge.net/projects/pythonce/files/pythonce-smartphone/Python-2.5-20071004/ for the Python interpreter.<br />
<br />
==See also==<br />
* [[kernel boot command-line parameters]]<br />
* [[XDAndroidStartup]]<br />
* [[MJGDroidUtil]]<br />
* [[FAQ#HaRET failing to boot?]]<br />
<br />
==External links==<br />
* http://www.handhelds.org/moin/moin.cgi/HaRET<br />
* http://forum.xda-developers.com/wiki/index.php?title=HaRET<br />
* http://www.htc-linux.org/wiki/index.php?title=HaRET</div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1231FAQ2011-05-10T20:52:54Z<p>Raf: missing paren</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]])?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
The 'max' you can overclock varies by device, and some devices can be pushed farther than others. It seems best to establish what max you can hit in WinMo, and apply that to Android (disable OC in WinMo before booting Android...) Anything over 700 seems risky, although some RHODs run up in the 800+ range without issue. If you're having problems, ramp this value down first, if not completely disabling it before moving on to other troubleshooting steps.<br />
<br />
== HaRET failing to boot? ==<br />
:''See also [[HaRET]].''<br />
# Don't overclock WinMo.<br />
# Look over the directions in the build thread again. Make sure you have all the necessary files, in the correct location.<br />
# If it's still failing to boot, format your SD card using the [http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe HP Tool] (for Linux, whatever tool seems to do the job &mdash; it's just the built-in Windows/WinMo format utilities that seem broken...)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== WiFi doesn't work at all? ==<br />
<br />
If Wi-Fi doesn't work in XDAndroid, make sure that it's enabled in Windows Mobile before booting into XDAndroid.<br />
<br />
If you have tried to use WiFi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1230FAQ2011-05-10T20:52:25Z<p>Raf: links, formatting</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]]?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
The 'max' you can overclock varies by device, and some devices can be pushed farther than others. It seems best to establish what max you can hit in WinMo, and apply that to Android (disable OC in WinMo before booting Android...) Anything over 700 seems risky, although some RHODs run up in the 800+ range without issue. If you're having problems, ramp this value down first, if not completely disabling it before moving on to other troubleshooting steps.<br />
<br />
== HaRET failing to boot? ==<br />
:''See also [[HaRET]].''<br />
# Don't overclock WinMo.<br />
# Look over the directions in the build thread again. Make sure you have all the necessary files, in the correct location.<br />
# If it's still failing to boot, format your SD card using the [http://www.eocfiles.com/bdc86eb1ed2989c30dcd1902e84939ae/bootdisks/SP27608.exe HP Tool] (for Linux, whatever tool seems to do the job &mdash; it's just the built-in Windows/WinMo format utilities that seem broken...)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== WiFi doesn't work at all? ==<br />
<br />
If Wi-Fi doesn't work in XDAndroid, make sure that it's enabled in Windows Mobile before booting into XDAndroid.<br />
<br />
If you have tried to use WiFi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=HaRET&diff=1200HaRET2011-04-28T06:13:55Z<p>Raf: transcription error</p>
<hr />
<div>'''HaRET''' ('''Handheld Reverse Engineering Tool''') is a [[Wikipedia:Windows CE|Windows CE]] application that serves as a [[Wikipedia:Linux kernel|Linux]] [[Wikipedia:boot loader|boot loader]] and as a tool for accessing the hardware internals of a Windows CE device.<br />
<br />
HaRET uses a configuration file called "startup.txt".<br />
<br />
==Running from StartUp==<br />
Windows CE can run HaRET.exe automatically by putting a [[Wikipedia:file shortcut|shortcut]] to it in the "\Windows\StartUp" folder.<br />
<br />
However, it seems that running HaRET too soon after boot does not give Windows enough time to properly initialize the Wi-Fi device, so Wi-Fi won't work under XDAndroid. A five-second delay seems sufficient to allow Windows to initialize the hardware.<br />
<br />
If HaRET supports some sort of "sleep" command in "startup.txt," that would probably be the simplest option.<br />
<br />
A [[Wikipedia:batch file|batch file]] would be a good option, but it seems that Windows CE does not support them.<br />
<br />
This Python script is confirmed to work:<br />
<syntaxhighlight lang="python"><br />
import time, os<br />
time.sleep(5)<br />
os.startfile('\\Storage Card\\andboot\\haret.exe', 'open')<br />
</syntaxhighlight><br />
<br />
Download PythonCE.WM.CAB from http://sourceforge.net/projects/pythonce/files/pythonce-smartphone/Python-2.5-20071004/ for the Python interpreter.<br />
<br />
==See also==<br />
* [[kernel boot command-line parameters]]<br />
* [[XDAndroidStartup]]<br />
* [[MJGDroidUtil]]<br />
<br />
==External links==<br />
* http://www.handhelds.org/moin/moin.cgi/HaRET<br />
* http://forum.xda-developers.com/wiki/index.php?title=HaRET<br />
* http://www.htc-linux.org/wiki/index.php?title=HaRET</div>Rafhttp://xdandroid.com/w/index.php?title=HaRET&diff=1199HaRET2011-04-27T05:51:11Z<p>Raf: +Running from StartUp</p>
<hr />
<div>'''HaRET''' ('''Handheld Reverse Engineering Tool''') is a [[Wikipedia:Windows CE|Windows CE]] application that serves as a [[Wikipedia:Linux kernel|Linux]] [[Wikipedia:boot loader|boot loader]] and as a tool for accessing the hardware internals of a Windows CE device.<br />
<br />
HaRET uses a configuration file called "startup.txt".<br />
<br />
==Running from StartUp==<br />
Windows CE can run HaRET.exe automatically by putting a [[Wikipedia:file shortcut|shortcut]] to it in the "\Windows\StartUp" folder.<br />
<br />
However, it seems that running HaRET too soon after boot does not give Windows enough time to properly initialize the Wi-Fi device, so Wi-Fi won't work under XDAndroid. A five-second delay seems sufficient to allow Windows to initialize the hardware.<br />
<br />
If HaRET supports some sort of "sleep" command in "startup.txt," that would probably be the simplest option.<br />
<br />
A [[Wikipedia:batch file|batch file]] would be a good option, but it seems that Windows CE does not support them.<br />
<br />
This Python script is confirmed to work:<br />
<syntaxhighlight lang="python"><br />
import time, os<br />
os.sleep(5)<br />
os.startfile('\\Storage Card\\andboot\\haret.exe', 'open')<br />
</syntaxhighlight><br />
<br />
Download PythonCE.WM.CAB from http://sourceforge.net/projects/pythonce/files/pythonce-smartphone/Python-2.5-20071004/ for the Python interpreter.<br />
<br />
==See also==<br />
* [[kernel boot command-line parameters]]<br />
* [[XDAndroidStartup]]<br />
* [[MJGDroidUtil]]<br />
<br />
==External links==<br />
* http://www.handhelds.org/moin/moin.cgi/HaRET<br />
* http://forum.xda-developers.com/wiki/index.php?title=HaRET<br />
* http://www.htc-linux.org/wiki/index.php?title=HaRET</div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=1198Kernel boot command-line parameters2011-04-26T21:59:28Z<p>Raf: +rhod100_es</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:change this for overclocking (should be a multiple of 19200)<br />
:''768000'': 768&nbsp;MHz<br />
:''614400'': 614.4&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcraphael-navi.c arch/arm/mach-msm/board-htcraphael-navi.c]<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/external.c arch/arm/mach-msm/qdsp5/external.c]<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcblackstone-panel.c arch/arm/mach-msm/board-htcblackstone-panel.c]<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_battery_smem.c arch/arm/mach-msm/htc_battery_smem.c]<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;force_cdma<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': enable<ref name="thread_509493">http://forum.xda-developers.com/showthread.php?t=509493</ref><br />
:''2'': disable<br />
;hw3d.force<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/hw3d.c arch/arm/mach-msm/hw3d.c]<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual [[keyboard]] - ?<br />
:''on'': displays terminal onscreen keyboard<ref name="thread_509493"/><br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:See also [[keyboard]].<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_es''<ref>http://forum.xda-developers.com/showthread.php?t=935710</ref><br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod300''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files. E.g. <code>rel_path=andboot</code><br />
;sensor<br />
:''topaz'': ?<br />
;snd.force_headset<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/snd.c arch/arm/mach-msm/qdsp5/snd.c]<br />
:add headset half autodetection, when you plug in/out the headset, to apply the output update, make a call (or find any other way to call snd_set_device's ioctl)<br />
:''1'': extUSB audio I/O<br />
:''2'': 3.5-mm jack<br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1192FAQ2011-04-14T18:57:07Z<p>Raf: </p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]]?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== WiFi doesn't work at all? ==<br />
<br />
If Wi-Fi doesn't work in XDAndroid, make sure that it's enabled in Windows Mobile before booting into XDAndroid.<br />
<br />
If you have tried to use WiFi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1191FAQ2011-04-14T18:56:15Z<p>Raf: Wi-Fi: enable under Windows Mobile first</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]]?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== WiFi doesn't work at all? ==<br />
<br />
If Wi-Fi doesn't work in XDAndroid, make sure that it's enabled Wi-Fi should be enabled in Windows Mobile before booting into XDAndroid.<br />
<br />
If you have tried to use WiFi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=Keyboard&diff=1189Keyboard2011-04-14T02:22:17Z<p>Raf: +link to another alternative root FS</p>
<hr />
<div>'''Keyboard''' layouts are affected by the "physkeyboard" [[kernel boot command-line parameters|kernel boot command-line parameter]].<br />
<br />
The [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] app allows for changing the behavior of the "end" button.<br />
<br />
manekineko maintains an alternative root filesystem image that changes some keyboard mappings.<ref>http://forum.ppcgeeks.com/2043067-post1.html</ref><br />
<br />
F22 maintains an alternative root filesystem image that allows you to change all sorts of button-mapping related things.<ref>http://forum.xda-developers.com/showthread.php?t=935710</ref><br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1188FAQ2011-04-14T02:20:42Z<p>Raf: keyboard</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]]?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== Wifi doesn't work at all? ==<br />
<br />
If you have tried to use wifi and every possible fix suggested fails - and the error states "Unable to scan" the issue probably lies in the <tt>wifi-nvram.txt</tt> file - basically Android doesn't know the MAC address of your WLAN card.<br />
<br />
See [http://forum.xda-developers.com/showpost.php?p=9187263&postcount=80 F22's post] on how to workaround this issue.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...) (See also [[keyboard]].)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=1187Kernel boot command-line parameters2011-04-14T02:19:45Z<p>Raf: keyboard</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:change this for overclocking (should be a multiple of 19200)<br />
:''768000'': 768&nbsp;MHz<br />
:''614400'': 614.4&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcraphael-navi.c arch/arm/mach-msm/board-htcraphael-navi.c]<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/external.c arch/arm/mach-msm/qdsp5/external.c]<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcblackstone-panel.c arch/arm/mach-msm/board-htcblackstone-panel.c]<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_battery_smem.c arch/arm/mach-msm/htc_battery_smem.c]<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;force_cdma<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': enable<ref name="thread_509493">http://forum.xda-developers.com/showthread.php?t=509493</ref><br />
:''2'': disable<br />
;hw3d.force<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/hw3d.c arch/arm/mach-msm/hw3d.c]<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual [[keyboard]] - ?<br />
:''on'': displays terminal onscreen keyboard<ref name="thread_509493"/><br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:See also [[keyboard]].<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files. E.g. <code>rel_path=andboot</code><br />
;sensor<br />
:''topaz'': ?<br />
;snd.force_headset<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/snd.c arch/arm/mach-msm/qdsp5/snd.c]<br />
:add headset half autodetection, when you plug in/out the headset, to apply the output update, make a call (or find any other way to call snd_set_device's ioctl)<br />
:''1'': extUSB audio I/O<br />
:''2'': 3.5-mm jack<br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=Keyboard&diff=1186Keyboard2011-04-14T02:18:55Z<p>Raf: Created page with "'''Keyboard''' layouts are affected by the "physkeyboard" kernel boot command-line parameter. The [https://market.android.com/details?id=..."</p>
<hr />
<div>'''Keyboard''' layouts are affected by the "physkeyboard" [[kernel boot command-line parameters|kernel boot command-line parameter]].<br />
<br />
The [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] app allows for changing the behavior of the "end" button.<br />
<br />
manekineko maintains an alternative root filesystem image that changes some keyboard mappings.<ref>http://forum.ppcgeeks.com/2043067-post1.html</ref><br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=GBX&diff=1185GBX2011-04-14T02:12:19Z<p>Raf: Created page with "'''GBX''' = Gingerbread + X"</p>
<hr />
<div>'''GBX''' = Gingerbread + X</div>Rafhttp://xdandroid.com/w/index.php?title=FRX&diff=1184FRX2011-04-14T02:11:34Z<p>Raf: Created page with "'''FRX''' = Froyo + X"</p>
<hr />
<div>'''FRX''' = Froyo + X</div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=1183Kernel boot command-line parameters2011-04-14T01:55:27Z<p>Raf: +details</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:change this for overclocking (should be a multiple of 19200)<br />
:''768000'': 768&nbsp;MHz<br />
:''614400'': 614.4&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcraphael-navi.c arch/arm/mach-msm/board-htcraphael-navi.c]<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/external.c arch/arm/mach-msm/qdsp5/external.c]<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcblackstone-panel.c arch/arm/mach-msm/board-htcblackstone-panel.c]<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_battery_smem.c arch/arm/mach-msm/htc_battery_smem.c]<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;force_cdma<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': enable<ref name="thread_509493">http://forum.xda-developers.com/showthread.php?t=509493</ref><br />
:''2'': disable<br />
;hw3d.force<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/hw3d.c arch/arm/mach-msm/hw3d.c]<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual keyboard - ?<br />
:''on'': displays terminal onscreen keyboard<ref name="thread_509493"/><br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files. E.g. <code>rel_path=andboot</code><br />
;sensor<br />
:''topaz'': ?<br />
;snd.force_headset<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/snd.c arch/arm/mach-msm/qdsp5/snd.c]<br />
:add headset half autodetection, when you plug in/out the headset, to apply the output update, make a call (or find any other way to call snd_set_device's ioctl)<br />
:''1'': extUSB audio I/O<br />
:''2'': 3.5-mm jack<br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=Version_FRX06&diff=1180Version FRX062011-04-08T21:41:17Z<p>Raf: +call screen picture</p>
<hr />
<div>XDAndroid 2.2.2-r1 Build FRX05 is the project's sixth release of the Froyo series of Android.<br />
<br />
This system update was released on 25 March 2011.<br />
<br />
Downloads:<br />
*[http://files.xdandroid.com/system-FRX06.ext2.zip system-FRX06.ext2.zip] (system image update)<br />
<br />
==Changes from FRX05 to FRX06==<br />
[[File:Touch-friendly call screen.png|thumb|100px|new call screen]]<br />
*Switched to touch-friendly dialer, along with the VGA layout improvements as seen in Gingerbread<br />
*Added HSPA icon (for GSM models)</div>Rafhttp://xdandroid.com/w/index.php?title=File:Touch-friendly_call_screen.png&diff=1179File:Touch-friendly call screen.png2011-04-08T21:39:38Z<p>Raf: touch-friendly call screen, new in Version FRX06</p>
<hr />
<div>touch-friendly call screen, new in [[Version FRX06]]</div>Rafhttp://xdandroid.com/w/index.php?title=Building_and_Packaging_Eclair&diff=1176Building and Packaging Eclair2011-04-08T08:50:33Z<p>Raf: +Building and Packaging</p>
<hr />
<div>:''See [[Building and Packaging]] for ''Froyo'' and newer versions of Android.''<br />
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.<br />
<br />
Before commencing with the complete build, it may be necessary to provide dependencies for the system.<br />
<br />
==Build Dependencies==<br />
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 [http://developer.htc.com/adp.html HTC Developer Center website], via the <tt>signed-dream_devphone_userdebug-ota-14721.zip</tt> 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.<br />
<br />
If, while configuring the build system via <tt>buildspec.mk</tt>, 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 [http://www.mediafire.com/?hy2yj42my3i external filesharing mirror]. Save this file in the root directory of the XDAndroid source tree, under the same name.<br />
<br />
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...<br />
<br />
<syntaxhighlight lang="bash"><br />
$ cd vendor/xdandroid/msm<br />
$ ./unzip-files.sh<br />
</syntaxhighlight><br />
<br />
The files will be extracted and available to the build system.<br />
<br />
==Building the System==<br />
This ''highly convoluted'' step will eventually spit out a number of filesystem images, including one containing the XDAndroid system.<br />
<br />
To build the system, execute the following extremely complicated command from the root directory of the XDAndroid source tree...<br />
<br />
<syntaxhighlight lang="bash"><br />
$ make -j4 # A -jX argument based on the number of CPUs available, plus one, is recommended.<br />
</syntaxhighlight><br />
<br />
After several weeks, the build will be complete and the system is ready for packaging.<br />
<br />
==Packaging the System==<br />
The Android build system, which hopefully went off without a hitch, will have generated a number of filesystem images in <tt>out/target/product/msm</tt> under the root directory of the source tree.<br />
<br />
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 <tt>system.img</tt>, which contains the binaries generated by the compilation process.<br />
<br />
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 <tt>system.ext2</tt> and placed in the user's <tt>andboot</tt> directory for a successful boot.<br />
<br />
Optionally, the system image can be repacked as a SquashFS file system, for smaller size. Instructions on completing this step will follow shortly.</div>Rafhttp://xdandroid.com/w/index.php?title=FAQ&diff=1175FAQ2011-04-08T08:38:41Z<p>Raf: links, formatting</p>
<hr />
<div><!-- IF YOU ARE EDITING THIS PAGE, BE AWARE:<br />
All edits are subject to review. Your revisions will not be visible to the world until<br />
accepted. Quality assurance will be done regularly by the Wiki editing team. --><br />
<br />
=General FAQs=<br />
<br />
== How can I tell what device I have? RAPH? RHOD? ==<br />
<br />
When you go looking thru the STARTUPS folder of a build, the list might be daunting - do I have a RAPH (a.k.a. [[Wikipedia:HTC Touch Pro|HTC Touch Pro]])? RHOD (a.k.a. [[Wikipedia:HTC Touch Pro2|HTC Touch Pro2]])? DIAM (a.k.a. [[Wikipedia:HTC Touch Diamond|HTC Touch Diamond]]?<br />
<br />
If you are confused, the easiest/quickest way to settle it is to pull the battery on the device; shut it down completely first, if you can. Do not look on the battery itself, but on the phone itself. On the sticker it should say what device you have &mdash; 4 letters and 3 numbers, above the [[Wikipedia:IMEI|IMEI]] bar code...<br />
<br />
RHOD100<br />
or<br />
DIAM500<br />
etc...<br />
<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|Rhodium: [[File:599px-HTC_Rhodium.jpg|thumb]]<br />
|Raphael: [[File:HTC_Raphael.jpg|160px|thumb]]<br />
|Kovsky: [[File:Htckovs100yk8.jpg|150px|thumb]]<br />
|-<br />
|Topaz: [[File:741px-HTC_Topaz.jpg|230px|thumb]]<br />
|Blackstone: [[File:HTC_Blackstone.jpg|thumb]]<br />
|Diamond: [[File:HTC_Diamond.jpg|110px|thumb]]<br />
|}<br />
<br />
== How do I overclock? ==<br />
<br />
Place this command in your <tt>[[startup.txt]]</tt>: <tt>acpuclock.oc_freq_khz=614400</tt> for 614.4&nbsp;MHz. Choose multiples of 19.2&nbsp;MHz, or the system will default to the closest multiple for you (for example if you put in 700000 it will really be ~692&nbsp;MHz instead of 700&nbsp;MHz). (See also [[Kernel boot command-line parameters]].)<br />
<br />
== How do I migrate my contacts from Windows Mobile? ==<br />
<br />
[http://www.google.com/support/mobile/bin/answer.py?answer=138636&topic=14299 How to sync WinMo with Google]<br />
<br />
In Android, simply add a Google account to sync normally. The account will eventually synchronize the contacts that were added to it by Windows Mobile as directed in the above page. Changes and additions to the contact list will be continuously synchronized between the two operating systems.<br />
<br />
== How much space do I need on my Storage Card? ==<br />
<br />
The absolute-minimum supported card size is 512MB. For reference, a complete XDAndroid system will usually occupy about 480MB of space (including a 256MB <tt>data.img</tt> file which appears after initial installation).<br />
<br />
== Do I have to run this at the root of my SD? ==<br />
<br />
No, you can set a rel_path value in the <tt>[[startup.txt]]</tt> file.<br />
<br />
I have mine two folders deep; from within Android it would be /sdcard/Androids/TP2Ref. My <code>rel_path=Androids/TP2Ref</code>. This goes between the quotes, after <code>set cmdline</code>.<br />
<br />
== How do I fix a non-functioning or miscalibrated touchscreen? ==<br />
<br />
Delete the file <tt>ts-calibration</tt> from the same directory in which you run <tt>[[HaRET|haret.exe]]</tt> to boot Android. During the next boot, the device will prompt for touchscreen re-calibration.<br />
<br />
If you have any issues calibrating, you might need to go back to an older kernel. The .35 framebuffer commit seemed to cause this issue, so you can go to a kernel before it; [http://zimages.googlecode.com/files/htc-msm-linux-20101204_010857-package.tar.bz2 1231] for example works.<br />
<br />
== How do I prevent clock drift? ==<br />
<br />
XDAndroid currently suffers from two types of system clock drift. Gradual clock drifting may occur. To alleviate this, download [https://market.android.com/details?id=ru.org.amip.ClockSync ClockSync] from the Andriod Market. An hourly synchronization setting is recommended.<br />
<br />
Additionally, the clock may be skewed by a matter of hours when rebooting back into Windows Mobile. When this occurs, the offset will likely be the same as the local timezone's offset from [[Wikipedia:UTC|UTC]] (for instance, if in Eastern Standard Time, the clock will be five hours ahead when rebooting to Windows Mobile). This is due to time handling differences between Windows Mobile and the Linux kernel. It is recommended that Windows Mobile be configured to synchronize the clock automatically. Otherwise, a third-party application may be needed to maintain the clock properly.<br />
<br />
== Why does GPS lock in the middle of the ocean off the coast of Ghana? ==<br />
<br />
This is a known bug, and it does have a fix! Entropy512 has submitted a patch, and hopefully it will be integrated soon. [http://forum.xda-developers.com/showthread.php?t=969761 Here] is his thread with directions on how to apply the fix yourself, until it does get integrated into the system.<br />
<br />
== How can I dial out with Google Voice? ==<br />
<br />
Some users have issues dialing outbound calls through Google Voice. If you experience this, add the following to your ''cmdline'' in <tt>[[startup.txt]]</tt>: <tt>north_am_dialing=1</tt><br />
<br />
(See also [[Kernel boot command-line parameters]].)<br />
<br />
== Which ''cmdline'' arguments are available in <tt>startup.txt</tt>? ==<br />
<br />
See [[Kernel boot command-line parameters]].<br />
<br />
== How can I tether (WiFi/USB)? ==<br />
<br />
USB tethering doesn't work natively yet, but there is an app on the market called "[https://market.android.com/details?id=com.mstream.easytether_polyclef EasyTether]". There is a free version ([https://market.android.com/details?id=com.mstream.easytether_beta EasyTether Lite]), but it blocks HTTPS (note: adb is needed, see [[#How-To ADB]]).<br />
<br />
WiFi tethering ''should'' work out of the box (Settings &rarr; Tethering & Portable Hotspot). If it doesn't there are two options as far as I'm concerned: [http://southcape.org/2010/03/18/xdandroid-eclair-wifi-tethering/ XDAndroid Wifi Tether] or [https://market.android.com/details?id=net.szym.barnacle Barnacle Wifi Tether] (on the Market).<br />
<br />
== Why does Google Goggles Fail? ==<br />
<br />
[[Wikipedia:IPv6|IPv6]] is the reason, and despite popular belief our builds do support it, they just don't have it enabled.<br />
<br />
To enable it once, <code>modprobe ipv6</code> will enable it for that session. To enable it on boot, add that line to your user.conf file, in the 'CustomCommands' section.<br />
<br />
== What is ADB / How-To ADB ==<br />
<br />
ADB = Android Debugging Bridge. [http://developer.android.com/guide/developing/tools/adb.html Official Google ADB Page]<br />
<br />
It also kinda works like [[Wikipedia:USB Mass Storage|USB Mass Storage]] using a Windows app called [http://de.codeplex.com/ Droid Explorer].<br />
<br />
In addition, you can use it to get a console connection into the phone.<br />
<br />
If you want to pull logs, the most popular kind are <code>dmesg</code>, <code>logcat</code> and <code>logcat -b radio</code>.<br />
<br />
<code>adb shell dmesg > dmesg.txt</code> will dump a dmesg log (kernel traces) to a file &mdash; dmesg.txt &mdash; on your computer. Note this command will drop dmesg.txt where ever you are currently running the command from &mdash; watch the path you are at!<br />
<br />
<code>adb logcat > logcat.txt</code> will dump a logcat file (userland traces).<br />
<br />
<code>adb logcat -b radio > logcat_radio.txt</code> will dump a <code>logcat -b radio</code> file (logcat specific to the radio/[[Wikipedia:Radio Interface Layer|RIL]]).<br />
<br />
You can also run these on the phone directly. Note: dmesg runs and ends while the two logcat commands run continuously. You will have to break them (CTRL-C) to get the log to quit and give you back a prompt. There are many other ADB functions which I will not address here, please see the official ADB link above.<br />
<br />
[http://forum.xda-developers.com/showthread.php?t=849718 Windows How-To]<br />
<br />
[http://forum.xda-developers.com/showthread.php?p=11823740 Linux (Ubuntu) How-To]<br />
<br />
== What is an APK / How to install apps/programs ==<br />
<br />
APK = Android application package file [http://developer.android.com/guide/appendix/glossary.html from the Android Glossary]<br />
<br />
Of course you can install apps through the Market, but if you wish to install apps manually using an APK file, there is a folder &mdash; <tt>AndroidApps</tt> &mdash; off of where you run <tt>[[HaRET|haret.exe]]</tt> from. Simply place the APK inside this folder, and on the next boot the APK will be installed on the system. Notice there are folders within this main <tt>AndroidApps</tt> folder. Do not place any APKs inside these folders. They are there for you to pick and choose some apps that some may find useful, but we didn't want to automatically install them for the sake of having a clean build.<br />
<br />
There are some other methods for installing APKs, which pertain to native Android devices and are outside of the scope of this FAQ.<br />
<br />
=HTC Touch Pro 2/Tilt 2 (Rhodium)=<br />
<br />
== Which features are not currently supported? ==<br />
<br />
* [[Wikipedia:Bluetooth|Bluetooth]] - pairs but doesn't pass any audio/data<br />
* 3.5-mm jack - RHOD400/500 has this plug, and it doesn't work at the moment (audio works using a [http://www.amazon.com/gp/product/B001QD3MQE/ HTC ExtUSB adapter])<br />
* USB - only works for adb (debugging) and battery charging<br />
<br />
For a more complete list, please see [http://forum.ppcgeeks.com/tp2-android-development/132515-read-before-you-post-something-isnt-working-known-issues-affecting-all-builds-2-9-a.html this PPC-Geeks forum thread] (thanks manekineko)<br />
<br />
== Why is the device's notification LED always orange or green? ==<br />
<br />
The notification LED indicates sleep state (orange LED indicates device is awake; green LED indicates device is in sleep mode). If the LED is always orange, the phone isn't properly sleeping. Make sure GPS is disabled, as this will prevent the phone from sleeping.<br />
<br />
== How do I connect to WiFi networks with WEP encryption? ==<br />
<br />
There is currently [http://bugs.xdandroid.com/show_bug.cgi?id=90 an issue with WiFi access points which use WEP encryption]. The system currently does not support WEP out of the box, but a Market app called '''[http://code.google.com/p/android-wifi-ace/ wifi-ace]''' will work around this issue until it is resolved by XDAndroid.<br />
<br />
== Why do I not have service? ==<br />
<br />
The main reason for not having service would be the force_cdma setting in the <tt>[[startup.txt]]</tt> file. If you are using the phone as a GSM device, <code>force_cdma=0</code> needs to be present in your cmdline with no other <code>force_cdma</code> statements! This is the default, so if you do not have a <code>force_cdma=</code> statement, the default value is 0. If you are using the device as [[Wikipedia:CDMA|CDMA]], this needs to =1. The phone cannot simultaneously be used as both currently &mdash; one or the other, choose wisely.<br />
<br />
In addition, if you're using a CDMA device in CDMA mode, you '''must''' remove the [[Wikipedia:SIM card|SIM card]] prior to booting!<br />
<br />
== The power and end button do the same thing, what gives? ==<br />
<br />
In some of the older builds, power was mapped as home. There was a decision that was made (very controversial I might add) to remap power to be power. Problem is, the end key is also power by default. There's a couple of options:<br />
<br />
* F22 has been maintaining a modified rootfs ([http://forum.xda-developers.com/showthread.php?t=935710 thread]) file that allows you to change all sorts of button-mapping related things. Hopefully it'll get committed soon! (Hint hint F22...)<br />
* Alternatively, and perhaps slightly easier - in the app [https://market.android.com/details?id=com.androidapps.spare_parts Spare Parts] (on the Market if your build doesn't include it) you can change the "End Key Behavior" so you can make it act as the home button. Note that this only effects short press, not long press.</div>Rafhttp://xdandroid.com/w/index.php?title=HaRET&diff=1174HaRET2011-04-08T07:59:54Z<p>Raf: startup.txt</p>
<hr />
<div>'''HaRET''' ('''Handheld Reverse Engineering Tool''') is a [[Wikipedia:Windows CE|Windows CE]] application that serves as a [[Wikipedia:Linux kernel|Linux]] [[Wikipedia:boot loader|boot loader]] and as a tool for accessing the hardware internals of a Windows CE device.<br />
<br />
HaRET uses a configuration file called "startup.txt".<br />
<br />
==See also==<br />
* [[kernel boot command-line parameters]]<br />
* [[XDAndroidStartup]]<br />
* [[MJGDroidUtil]]<br />
<br />
==External links==<br />
* http://www.handhelds.org/moin/moin.cgi/HaRET<br />
* http://forum.xda-developers.com/wiki/index.php?title=HaRET<br />
* http://www.htc-linux.org/wiki/index.php?title=HaRET</div>Rafhttp://xdandroid.com/w/index.php?title=HaRET&diff=1173HaRET2011-04-08T07:59:15Z<p>Raf: rm self link through redirect</p>
<hr />
<div>'''HaRET''' ('''Handheld Reverse Engineering Tool''') is a [[Wikipedia:Windows CE|Windows CE]] application that serves as a [[Wikipedia:Linux kernel|Linux]] [[Wikipedia:boot loader|boot loader]] and as a tool for accessing the hardware internals of a Windows CE device.<br />
<br />
==See also==<br />
* [[kernel boot command-line parameters]]<br />
* [[XDAndroidStartup]]<br />
* [[MJGDroidUtil]]<br />
<br />
==External links==<br />
* http://www.handhelds.org/moin/moin.cgi/HaRET<br />
* http://forum.xda-developers.com/wiki/index.php?title=HaRET<br />
* http://www.htc-linux.org/wiki/index.php?title=HaRET</div>Rafhttp://xdandroid.com/w/index.php?title=Startup.txt&diff=1172Startup.txt2011-04-08T07:58:52Z<p>Raf: Redirected page to HaRET</p>
<hr />
<div>#REDIRECT [[HaRET]]</div>Rafhttp://xdandroid.com/w/index.php?title=Version_FRX06&diff=1158Version FRX062011-04-05T21:43:57Z<p>Raf: Created page with "Build '''FRX06''' was released around March 25, 2011. Downloads: * http://files.xdandroid.com/system-FRX06.ext2.zip ==External links== * http://forum.ppcgeeks.com/android-tp2-d..."</p>
<hr />
<div>Build '''FRX06''' was released around March 25, 2011.<br />
<br />
Downloads:<br />
* http://files.xdandroid.com/system-FRX06.ext2.zip<br />
<br />
==External links==<br />
* http://forum.ppcgeeks.com/android-tp2-development/140848-build-complete-froyo-bundle-frx06-stable-minor-fixes.html<br />
* http://southcape.org/2011/03/25/dual-xdandroid-releases-frx06-and-new-gingerbread/</div>Rafhttp://xdandroid.com/w/index.php?title=Incremental_Updates&diff=997Incremental Updates2011-02-14T20:24:34Z<p>Raf: kernel auto-build works again</p>
<hr />
<div>Several components of the XDAndroid system are updated continuously as development progresses. To facilitate more widespread testing and easier development, the project has created a few build services for those components.<br />
<br />
Advanced users may download live-updated versions of those components to follow development and test changes as they occur.<br />
<br />
These updates are intended to be performed at some point after a full installation. For information regarding full system installation, please see the [[Installation Guide]].<br />
<br />
==zImage Updates==<br />
Live kernel builds are available from [http://glemsom.users.anapnea.net/android2/htc-msm-linux/ the kernel build service]. These builds are packaged as bzip2 tarballs and can be unpacked with the Unix <tt>tar</tt> utility or the [http://7-zip.org 7-Zip program] on Windows.<br />
<br />
To install a kernel update, unpack the tar.bz2 package into your MicroSD card's <tt>andboot</tt> directory. This will create new <tt>zImage_''VERSION''</tt> and <tt>modules-''VERSION''.tar.gz</tt> files in that directory (where VERSION is the new version number).<br />
<br />
At this point, you may do either one of the following:<br />
* Edit the <tt>startup.txt</tt> to change the line <tt>set KERNEL zImage</tt> to <tt>set KERNEL zImage_''VERSION''</tt>, OR<br />
* Delete the original <tt>zImage</tt> file and rename the new <tt>zImage_''VERSION''</tt> file to <tt>zImage</tt><br />
<br />
The new kernel and modules can now be used.<br />
<br />
==rootfs Updates==<br />
The rootfs builds are available from [http://files.xdandroid.com/rootfs/ the rootfs build service]. These builds are packaged as common Zip files.<br />
<br />
To install a rootfs update, unpack the Zip package into your MicroSD card's <tt>andboot</tt> directory. This will create a new <tt>rootfs-''VERSION''.img</tt> file.<br />
<br />
Delete the original <tt>rootfs.img</tt> file. Rename the new <tt>rootfs-''VERSION''.img</tt> file to <tt>rootfs.img</tt>.<br />
<br />
The new rootfs can now be used.<br />
<br />
==initrd Updates==<br />
New initrd.gz builds are rare. The image should be quite stable, so few updates are expected. Updates are available from [http://files.xdandroid.com/initramfs/ the initramfs build service]. These builds are packaged as gzip files and '''do not''' need to be unpacked.<br />
<br />
After downloading an <tt>initrd-''VERSION''.gz</tt> update (where VERSION is the new version number), you may do either one of the following:<br />
* Edit the <tt>startup.txt</tt> file to change the line <tt>set initrd initrd.gz</tt> to <tt>set initrd initrd-''VERSION''.gz</tt>, OR<br />
* Delete the original <tt>initrd.gz</tt> file and rename the new <tt>initrd-''VERSION''.gz</tt> file to <tt>initrd.gz</tt><br />
<br />
The new initrd can now be used.</div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=917Kernel boot command-line parameters2011-01-21T04:10:39Z<p>Raf: links to source code</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/acpuclock.c arch/arm/mach-msm/acpuclock.c]<br />
:change this for overclocking<br />
:''540672'': 528&nbsp;MHz (stock speed for Rhodium)<br />
:''716800'': 700&nbsp;MHz<br />
:''786432'': 768&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcraphael-navi.c arch/arm/mach-msm/board-htcraphael-navi.c]<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcrhodium-proximity.c arch/arm/mach-msm/board-htcrhodium-proximity.c]<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/external.c arch/arm/mach-msm/qdsp5/external.c]<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/board-htcblackstone-panel.c arch/arm/mach-msm/board-htcblackstone-panel.c]<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_battery_smem.c arch/arm/mach-msm/htc_battery_smem.c]<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;htc_hw.force_cdma<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/htc_hw.c arch/arm/mach-msm/htc_hw.c]<br />
:?<br />
;hw3d.force<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/hw3d.c arch/arm/mach-msm/hw3d.c]<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/drivers/mmc/host/msm_sdcc.c drivers/mmc/host/msm_sdcc.c]<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual keyboard - ?<br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/pm.c arch/arm/mach-msm/pm.c]<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files.<br />
;sensor<br />
:''topaz'': ?<br />
;snd.force_headset<br />
:[http://gitorious.org/linux-on-qualcomm-s-msm/linux-msm/blobs/htc-msm-2.6.27/arch/arm/mach-msm/qdsp5/snd.c arch/arm/mach-msm/qdsp5/snd.c]<br />
:add headset half autodetection, when you plug in/out the headset, to apply the output update, make a call (or find any other way to call snd_set_device's ioctl)<br />
:''1'': extUSB audio I/O<br />
:''2'': 3.5-mm jack<br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=916Kernel boot command-line parameters2011-01-20T23:05:13Z<p>Raf: snd.force_headset</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:arch/arm/mach-msm/acpuclock.c<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:arch/arm/mach-msm/acpuclock.c<br />
:change this for overclocking<br />
:''540672'': 528&nbsp;MHz (stock speed for Rhodium)<br />
:''716800'': 700&nbsp;MHz<br />
:''786432'': 768&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:arch/arm/mach-msm/board-htcraphael-navi.c<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:arch/arm/mach-msm/board-htcrhodium-proximity.c<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:arch/arm/mach-msm/board-htcrhodium-proximity.c<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:arch/arm/mach-msm/board-htcblackstone-panel.c<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:arch/arm/mach-msm/htc_battery_smem.c<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:arch/arm/mach-msm/htc_hw.c<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;htc_hw.force_cdma<br />
:arch/arm/mach-msm/htc_hw.c<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:arch/arm/mach-msm/htc_hw.c<br />
:?<br />
;hw3d.force<br />
:arch/arm/mach-msm/hw3d.c<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:msm_sdcc.c<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:msm_sdcc.c<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:msm_sdcc.c<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual keyboard - ?<br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:arch/arm/mach-msm/pm.c<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:arch/arm/mach-msm/pm.c<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files.<br />
;sensor<br />
:''topaz'': ?<br />
;snd.force_headset<br />
:''1'': add headset half autodetection, when you plug in/out the headset, to apply the output update, make a call (or find any other way to call snd_set_device's ioctl)<ref>http://forum.xda-developers.com/showthread.php?p=5591792</ref><br />
:''2'': for the 3.5-mm jack???<ref>http://forum.xda-developers.com/showthread.php?p=5591792</ref><br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=Incremental_Updates&diff=911Incremental Updates2011-01-06T01:16:10Z<p>Raf: auto-build service is down</p>
<hr />
<div>Several components of the XDAndroid system are updated continuously as development progresses. To facilitate more widespread testing and easier development, the project has created a few build services for those components.<br />
<br />
Advanced users may download live-updated versions of those components to follow development and test changes as they occur.<br />
<br />
These updates are intended to be performed at some point after a full installation. For information regarding full system installation, please see the [[Installation Guide]].<br />
<br />
==zImage Updates==<br />
:''As of Dec. 11, 2010, the '''auto-build service is down'''. Go to [http://forum.xda-developers.com/showthread.php?t=869992 this forum thread] for kernel updates.''<br />
Live kernel builds are available from [http://glemsom.users.anapnea.net/android2/htc-msm-linux/ the kernel build service]. These builds are packaged as bzip2 tarballs and can be unpacked with the Unix <tt>tar</tt> utility or the [http://7-zip.org 7-Zip program] on Windows.<br />
<br />
To install a kernel update, unpack the tar.bz2 package into your MicroSD card's <tt>andboot</tt> directory. This will create new <tt>zImage_''VERSION''</tt> and <tt>modules-''VERSION''.tar.gz</tt> files in that directory (where VERSION is the new version number).<br />
<br />
At this point, you may do either one of the following:<br />
* Edit the <tt>startup.txt</tt> to change the line <tt>set KERNEL zImage</tt> to <tt>set KERNEL zImage_''VERSION''</tt>, OR<br />
* Delete the original <tt>zImage</tt> file and rename the new <tt>zImage_''VERSION''</tt> file to <tt>zImage</tt><br />
<br />
The new kernel and modules can now be used.<br />
<br />
==rootfs Updates==<br />
The rootfs builds are available from [http://files.xdandroid.com/rootfs/ the rootfs build service]. These builds are packaged as common Zip files.<br />
<br />
To install a rootfs update, unpack the Zip package into your MicroSD card's <tt>andboot</tt> directory. This will create a new <tt>rootfs-''VERSION''.img</tt> file.<br />
<br />
Delete the original <tt>rootfs.img</tt> file. Rename the new <tt>rootfs-''VERSION''.img</tt> file to <tt>rootfs.img</tt>.<br />
<br />
The new rootfs can now be used.<br />
<br />
==initrd Updates==<br />
New initrd.gz builds are rare. The image should be quite stable, so few updates are expected. Updates are available from [http://files.xdandroid.com/initramfs/ the initramfs build service]. These builds are packaged as gzip files and '''do not''' need to be unpacked.<br />
<br />
After downloading an <tt>initrd-''VERSION''.gz</tt> update (where VERSION is the new version number), you may do either one of the following:<br />
* Edit the <tt>startup.txt</tt> file to change the line <tt>set initrd initrd.gz</tt> to <tt>set initrd initrd-''VERSION''.gz</tt>, OR<br />
* Delete the original <tt>initrd.gz</tt> file and rename the new <tt>initrd-''VERSION''.gz</tt> file to <tt>initrd.gz</tt><br />
<br />
The new initrd can now be used.</div>Rafhttp://xdandroid.com/w/index.php?title=Kernel_boot_command-line_parameters&diff=910Kernel boot command-line parameters2010-12-17T04:53:27Z<p>Raf: +filename for north_am_dialing</p>
<hr />
<div>This page documents some of the '''kernel boot command-line parameters''' that are useful for XDAndroid users.<br />
<br />
;acpuclock.force_turbo<br />
:arch/arm/mach-msm/acpuclock.c<br />
:?<br />
;acpuclock.oc_freq_khz<br />
:arch/arm/mach-msm/acpuclock.c<br />
:change this for overclocking<br />
:''540672'': 528&nbsp;MHz (stock speed for Rhodium)<br />
:''716800'': 700&nbsp;MHz<br />
:''786432'': 768&nbsp;MHz<br />
;board-htcraphael-navi.wake<br />
:arch/arm/mach-msm/board-htcraphael-navi.c<br />
:Controls which buttons wake the device from sleep.<br />
:''0'': ?<br />
;board-htcrhodium-proximity.on<br />
:arch/arm/mach-msm/board-htcrhodium-proximity.c<br />
:''1'': enable proximity sensor<br />
;board-htcrhodium-proximity.wake<br />
:arch/arm/mach-msm/board-htcrhodium-proximity.c<br />
:''1'': enable wake on proximity sensor<br />
;board-htcvogue.panel_type<br />
:arch/arm/mach-msm/board-htcvogue.c<br />
:Panel type used to power the panel off and on.<br />
:''0'': don't power off the panel (default)<br />
:''1'': Hitachi<br />
:''2'': Topoly<br />
:''3'': Samsung<br />
;clock-7x00.a11<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:ARM11|ARM11]] clock speed in MHz.<br />
;clock-7x00.ahb_div<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Advanced Microcontroller Bus Architecture#Advanced High-performance Bus (AHB)|Advanced Host Bus]] (AHB) divider.<br />
;clock-7x00.mddi<br />
:arch/arm/mach-msm/clock-7x00.c<br />
:[[Wikipedia:Mobile Display Digital Interface|Mobile Display Digital Interface]] (MDDI) clock address/offset/? (e.g. 0xa51 or 0xe2c)<br />
;external.rhod_speaker<br />
:''1'': enable external speaker<br />
;gsensor_axis<br />
:Maps the hardware accelerometer axes to software.<br />
;htcblackstone-panel.no_bkl_off<br />
:arch/arm/mach-msm/board-htcblackstone-panel.c<br />
:''1'': don't turn off the backlight<br />
;htc_battery_smem.fake<br />
:arch/arm/mach-msm/htc_battery_smem.c<br />
:''1'': turn off low-battery warning<br />
;htc_hw.call_vol<br />
:arch/arm/mach-msm/htc_hw.c<br />
:in-call speaker volume level (non-speakerphone speaker)<br />
:''0'': lowest volume<br />
:...<br />
:''5'': highest volume<br />
;htc_hw.force_cdma<br />
:arch/arm/mach-msm/htc_hw.c<br />
:''1'': tells the phone to use CDMA. This is useful for the Touch Pro2, which can contain both GSM and CDMA hardware.<br />
;htc_hw.handsfree<br />
:arch/arm/mach-msm/htc_hw.c<br />
:?<br />
;hw3d.force<br />
:arch/arm/mach-msm/hw3d.c<br />
:''1'': enable hardware 3D<br />
;lcd.density<br />
:?<br />
;mddi.width<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;mddi.height<br />
:[[Wikipedia:Mobile Display Digital Interface|MDDI]] - ?<br />
;msm_blackstone_pad.vibrate<br />
:''1'' - ?<br />
;msmsdcc_1bit<br />
:msm_sdcc.c<br />
:Eschews 4-bit-data mode for 1-bit-data mode in the MSM SD Card Controller.<br />
;msmsdcc_fmax<br />
:msm_sdcc.c<br />
:The maximum frequency (in Hz) used by the MSM SD Card Controller.<br />
;msmsdcc_nopwrsave<br />
:msm_sdcc.c<br />
:Disables power saving in the MSM SD Card Controller.<br />
;msmts_calib<br />
:?<br />
;msmvkeyb_toggle<br />
:''off'': MSM virtual keyboard - ?<br />
;north_am_dialing<br />
:htcgeneric-ril/htcgeneric-ril.c<br />
:''1'': tells the [[Wikipedia:Radio Interface Layer|RIL]] to strip "+" characters from phone numbers before dialing them. This is useful with some North American carriers (e.g. Sprint) that do not handle phone numbers containing "+". See also http://wiki.cdg.org/wiki/Plus_Code_Dialing.<br />
;physkeyboard<br />
:''fuze''<br />
:''raph''<br />
::''german_raph''<br />
::''nordic_raph''<br />
::''swiss_raph''<br />
:''rhod100_de''<br />
:''rhod100_fr''<br />
:''rhod100_it''<br />
:''rhod100_nordic''<br />
:''rhod100_uk''<br />
:''rhod210''<br />
:''rhod400'' (Sprint keyboard)<br />
:''rhod500'' (Verizon keyboard)<br />
:''tilt2''<br />
;pm.debug_mask<br />
:arch/arm/mach-msm/pm.c<br />
:power management - debug options<br />
:''2'': vibrates phone lightly after it exits deep sleep<br />
;pm.sleep_mode<br />
:arch/arm/mach-msm/pm.c<br />
:power management: set the mode used when the phone is "off"<br />
:''0'': Power Collapse Suspend - totally power off the [[Wikipedia:ARM11|ARM11]] ([[Wikipedia:processor register|register]]s must be restored)<ref name="androidport faq">http://sites.google.com/site/androidport/faq</ref><br />
:''1'': Power Collapse - totally power off the ARM11 (registers must be restored)<ref name="androidport faq"/><br />
:''2'': Apps Sleep - ARM11 is still on, but put into low-power mode (registers are still saved)<ref name="androidport faq"/><br />
:''3'': the ARM11's clock is lowered to 20&nbsp;MHz instead of 300&ndash;500, and voltage is lowered too; wait for interrupt<ref name="androidport faq"/><br />
:''4'': Wait for Interrupt - no change in ARM11's clock or voltage<ref name="androidport faq"/><br />
;pmem.extra<br />
:''1'': ?<br />
;ppp.apn<br />
:[[Wikipedia:Point-to-Point Protocol|PPP]] [[Wikipedia:Access Point Name|Access Point Name]], e.g. "internet"<br />
;ppp.nostart<br />
:''1'': disable starting the PPP connection on boot<br />
;ppp.password<br />
:The password used to connect to the network when dialing #777.<br />
;ppp.username<br />
:The username used to connect to the network when dialing #777.<br />
;rel_path<br />
:The path where the kernel should look for other XDAndroid files.<br />
;sensor<br />
:''topaz'': ?<br />
<br />
==External links==<br />
* http://www.androidonhtc.com/wiki/Boot_Options - similar information<br />
* http://sites.google.com/site/androidport/faq - look for "What are the different cmdline switches I can pass in the Startup.txt?"<br />
<br />
==References==<br />
<references/></div>Rafhttp://xdandroid.com/w/index.php?title=CyanogenMod&diff=865CyanogenMod2010-11-21T22:15:58Z<p>Raf: unofficial I meant</p>
<hr />
<div>'''CyanogenMod''' is an Android distribution that (unlike XDAndroid) targets phones that ship running Android from their manufacturers.<br />
<br />
A thread on xda-developers.com (http://forum.xda-developers.com/showthread.php?t=735975) tracks a CyanogenMod variant that runs on Windows Mobile phones (like XDAndroid does). This variant is not officially supported by the CyanogenMod project.</div>Raf