From iDroidWiki

Revision as of 17:45, 28 April 2022 by Iphonebuff (Talk | contribs)
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.
  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.
      • Are you sure it was a backlight dimming or just a black fading screen?
        • Good point, I'll have to really check next time I get Google Apps running. I did check logcat and it was calling some strange functions when it faded.
  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.
  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.
  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.
  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?
    • Setting in Open iBoot what is the default operating system

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).


  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.
    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