Difference between revisions of "Status"

From freemyipod.org
Jump to: navigation, search
(Basic drivers or steps:)
 
(39 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This status is based on the progress the Linux4nano team has made.
+
<!--
 +
{{outdated|reason=This page is not updated anymore, please refer to [https://www.rockbox.org/ Rockbox's website] for a list of supported iPod models.}}
 +
-->
 +
This status is based on the progress the freemyipod team has made so far. This is mostly a summary of reverse engineering and 'janitorial' work required to run end-user software like Rockbox or Linux.
  
== Basic drivers or steps: ==
+
{| class="wikitable"
In semi-chronological order:
+
!  !! [[Nano 2G]] !! [[Nano 3G]] !! [[Nano 4G]] !! [[Nano 5G]] !! [[Nano 6G]] !! [[Nano 7G]] !! [[Classic 1G]] !! [[Classic 2G]] !! [[Classic 3G]]
{| border="1" cellpadding="5" cellspacing="0"
 
!  !! [[Nano 2G]] !! [[Nano 3G]] !! [[Nano 4G]] !! [[Nano 5G]] !! [[Classic 1G]] (80/160thick) !! [[Classic 2G]] (120) !! [[Classic 3G]] (160thin)
 
 
|-
 
|-
 
| Code execution
 
| Code execution
Line 10: Line 11:
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
| <span style="color:red">'''Needs new exploit'''</span>
+
| <span style="color:green">'''Tethered'''</span>
 +
| <span style="color:green">'''Yes'''<ref name="nano6g7g"/></span>
 +
| <span style="color:green">'''Yes'''<ref name="nano6g7g"/></span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| UART
+
| Firmware decryption
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
|-
 
| USB
 
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 +
|-
 +
| [[U-Boot]]
 +
| <span style="color:red">'''No'''</span>
 +
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Work in progress'''</span>
 
| <span style="color:grey">'''Work in progress'''</span>
 
| <span style="color:grey">'''Work in progress'''</span>
 
|-
 
| iBugger
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:grey">'''Minimalistic SRAMbugger loader'''</span>
 
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Work in progress'''</span>
+
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Work in progress'''</span>
+
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Work in progress'''</span>
+
| <span style="color:red">'''No'''</span>
 +
| <span style="color:red">'''No'''</span>
 
|-
 
|-
| I2C
+
| [[emCORE]]
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 49: Line 47:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Backlight
+
| Boot [[OSOS]]
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
| <span style="color:red">'''No'''</span>
 
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:grey">'''No'''<ref name="tethered"/></span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| LCD
+
| SDRAM
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:grey">'''No'''<ref name="tethered"/></span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
|-
 +
| UART
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:grey">'''No'''<ref name="uartnotneeded"/></span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Piezo
+
| USB
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
|-
 +
| SPI
 +
| <span style="color:grey">'''Unused'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Clickwheel
+
| I2C
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
|-
 +
| Backlight
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Audio
+
| LCD
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| NAND/Hard Drive
+
| Clickwheel
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 102: Line 146:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Power management
+
| Audio
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 112: Line 157:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Firmware encryption
+
| NAND/Hard Drive
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:green">'''Yes'''</span>
 
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 
|-
 
|-
| Accelerometer
+
| Power management
| <span style="color:grey">'''N/A'''</span>
 
| <span style="color:grey">'''N/A'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:grey">'''N/A'''</span>
 
| <span style="color:grey">'''N/A'''</span>
 
| <span style="color:grey">'''N/A'''</span>
 
|}
 
 
 
== Custom firmware ==
 
{| border="1" cellpadding="5" cellspacing="0"
 
!  !! 2G Nano !! 3G Nano !! 4G Nano !! 5G Nano !! 1G Classic (aka 6G) !! 2G Classic (aka 6.5G) !! 3G Classic
 
|-
 
| Bootloader
 
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 144: Line 179:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:grey">'''Partially'''</span>
 +
| <span style="color:grey">'''Partially'''</span>
 +
| <span style="color:grey">'''Partially'''</span>
 
|-
 
|-
| Rockbox
+
| RTC
| <span style="color:green">'''Mostly working''', see [http://www.rockbox.org/wiki/IPodNano2GPort here]</span>
+
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 153: Line 190:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
| <span style="color:green">'''Yes'''</span>
 +
|-
 +
| Piezo
 +
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
|-
 
| Linux
 
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
Line 164: Line 205:
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
|-
 
|-
| Uncap
+
| Accelerometer
 +
| <span style="color:grey">'''N/A'''</span>
 +
| <span style="color:grey">'''N/A'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:green">'''Yes'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
 
| <span style="color:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:grey">'''N/A'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:grey">'''N/A'''</span>
| <span style="color:red">'''No'''</span>
+
| <span style="color:grey">'''N/A'''</span>
|-
+
|}
 +
 
 +
===Annotations===
 +
<references>
 +
<ref name="uartnotneeded">UART is not really needed here as we can already access the device via USB.</ref>
 +
<ref name="nano6g7g">Nano 6G and Nano 7G code execution is implemented using CVE-2010-1797</ref>
 +
<ref name="tethered">Nano 5G support is implemented in a tethered fashion via wInd3x, where we re-use parts of the original Apple boot chain which negates the need of some features.</ref>
 +
</references>

Latest revision as of 16:34, 30 December 2023

This status is based on the progress the freemyipod team has made so far. This is mostly a summary of reverse engineering and 'janitorial' work required to run end-user software like Rockbox or Linux.

Nano 2G Nano 3G Nano 4G Nano 5G Nano 6G Nano 7G Classic 1G Classic 2G Classic 3G
Code execution Yes Yes Yes Tethered Yes[1] Yes[1] Yes Yes Yes
Firmware decryption Yes Yes Yes Yes No No Yes Yes Yes
U-Boot No No No Yes No No No No No
emCORE Yes No Yes No No No Yes Yes Yes
Boot OSOS Yes Yes No No[2] No No Yes Yes Yes
SDRAM Yes No Yes No[2] No No Yes Yes Yes
UART Yes Yes No[3] Yes No No Yes Yes Yes
USB Yes Yes Yes Yes No No Yes Yes Yes
SPI Unused Yes No No No No Yes Yes Yes
I2C Yes Yes Yes No No No Yes Yes Yes
Backlight Yes No Yes No No No Yes Yes Yes
LCD Yes No Yes No No No Yes Yes Yes
Clickwheel Yes Yes No No No No Yes Yes Yes
Audio Yes No No No No No Yes Yes Yes
NAND/Hard Drive Yes No No No No No Yes Yes Yes
Power management Yes No No No No No Partially Partially Partially
RTC Yes No No No No No Yes Yes Yes
Piezo Yes No No No No No No No No
Accelerometer N/A N/A Yes No No No N/A N/A N/A

Annotations

  1. 1.0 1.1 Nano 6G and Nano 7G code execution is implemented using CVE-2010-1797
  2. 2.0 2.1 Nano 5G support is implemented in a tethered fashion via wInd3x, where we re-use parts of the original Apple boot chain which negates the need of some features.
  3. UART is not really needed here as we can already access the device via USB.