From iDroid Project

Jump to: navigation, search

This is a rough list of things that need to be done. Feel free to add to the list or claim items from the list that you are working on.


Easy stuff

These can be done by programmers with no reverse engineering experience.

  1. Accelerometer support in the kernel/Android. openiboot has support but it needs to be ported to the kernel.
  2. Ambient light sensor support in the kernel/Android. openiboot has support but it needs to be ported to the kernel.
  3. Figure out how to get media to work without a SD cardFixed, see: SDcard emulation
  4. Calibrate the multitouch driver. Right now, contrary to the range of values reported by the multitouch firmware, some of the values dip into the negatives. I don't know if it is the same offset in all devices or if it's different for each device. Collect data from many different iPhones using multitouch_setup in openiboot and figure out a good way to calibrate multitouch.
    • multitouch_setup asks for some values, how i can extrapolate the data?
      • needs a calibration to sensitivity also.
  5. Calendar application crashes on start up.
    • Calendar.apk from HTC recovery images works.
      • Where can we get this image?(try forum. I use 2g>idroid>Guide to making g app work. I think calendar need to login to google server)
  6. Backlight support.
    • Works great in the openiboot console, any idea to connect it to android?
      • Setting backlight in oibc and doing a tethered boot android keeps the value for all it's session.
    • Works in android to a certain extent. Youtube app can change screen brightness itself. My device locked while buffering a video, I unlocked it and the screen dimmed. It's a fading effect only.
  7. Clean-up and refactor the code
  8. Power management code. Use the existing power and clock gating stuff to add proper suspend and resume to all the devices.
  9. Easier installation.
    • If development really takes off maybe easier update method then replacing ROMs
  10. The iPhone does not have enough buttons to use Android well enough.
    • click emulation (can we do without the search button?)
      • single click for back
      • double click for home
      • long click for settings
      • sleep button remains the sleep button, volume buttons remain the volume buttons
    • Recompile maybe the key layout? Looking into it atm
    • Remap other buttons to replace call/end call buttons in some situations? E.g. proposal:
      1. when incoming call is ringing: sleep button & volume button turn off sound, sleep button twice declines call, home button (if unlocked) accepts call.
      2. while talking: sleep button ends call.
    • Use lock button as modifier to change function of other buttons (doubles our buttons might be easier to do)
  11. Vibration. This is already in openiboot and might require modifying the RIL.
  12. Fix DNS. Currently you must use IP addresses in the Browser.
    • Really? I don't. (planetbeing)
    • Current Fix: DNS_Fix
  13. Be able to turn off the phone. :)
    • See PMU shutdown code in openiboot
    • Need to unmount partitions cleanly, which may be a little non-standard because of the loopbacks. All Android partitions should be unmounted or remounted read-only. The loopback devices should be set read-only and the HFS+ iPhone data partition needs to be mounted read-only. This will make everything clean upon reboot (made possible by a custom patch to the kernel's loop block device and HFS+ filesystem).
      • Reboot command unmounts cleanly to me.
  14. ADB via USB. Network_over_usb -- I have ADB over USB in my tree. Ricky26
  15. Include Google apps such as GMail and Market (Copyrighted, if I recall, so it might require a workaround similar to what cyanogenmod does).
    • I worked on it to a certain extent. Got everything working apart from maps (said it needed a data connection) and marketplace. When attempting to contact the servers to get a list of the applications, vending just gives an error about not being able to connect to the server. logcat also doesn't give much insight onto why the error is occuring.
      • The market.apk got released from Google? If not there's a way to extrapolate it from a Google official release ROM? Might be awesome if there's a wiki article on that.
        • I can't post the link here because its coyrighted material. If I or anyone else gets the market place server thing fixed, be sure to see a wiki page on it.
          • I know it would be a little far-fetched, but since we can't legally provide "The Google Experience" you think we could just ask Google if they would distribute it on their own terms to users? Has anyone tried?
    • For those who are wondering the .apk can be found inside the HTC recovery images
    • Can install third-party markets and they work without problem.
  16. Sim pin support
  17. Anything else?
    • Newer Android version - 2.x?
      • Nick just released a thing for Gingerbread code-named Pepparkaka :) -themiddlegeek
    • Setting in Open iBoot what is the default operating system
    • Basic accessories? The Apple headphones or others with mic and volume?

Harder stuff

  1. The current USB gadget controller driver is really buggy. We need to fix or replace it.
  2. Cellular data for the baseband.
  3. Reverse the camera driver stuff. Talk to CPICH stuff and possibly consult S3C/S5L datasheets that are available.
  4. Implement 3D acceleration (no open-source driver exists for the PowerVR GPUs that the iPhone uses).
    • see here
    • The Motorola Droid uses a variant of the GPU in the 3GS, maybe it would be possible to strip the driver out of a recovery ROM see here


  1. iPod touch and iPhone 3G port (and then 3Gs, iPod touch 2G, iPad, and iPod touch 3G)
    1. Compile openiboot for the two devices and make sure it works and all the devices that openiboot supports work.
      1. Got most of openiboot working on ipt1G, except we've got some NAND issues. (Terinjokes)
    2. Port any fixes back into the Linux kernel.
    3. Reverse Zephyr2 (planetbeing's got this one)
    4. Investigate 3G baseband communications... Some of it seems to happen over SPI
  2. Other ports?


  1. Expand Hardware page and add information about the drivers.
    1. A template is given.
    2. Add datasheets for the components
    3. Gather information about the drivers and their source
      1. Found in Androird-Kernel or Written by Jone Doe. Something like that.
  2. Hardware page has been merged with Status page
  3. Add your experiences and solutions on FAQ page