Status: Difference between revisions

From freemyipod
Jump to navigation Jump to search
TheSeven (talk | contribs)
No edit summary
No edit summary
 
(31 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This status is based on the progress the freemyipod team has made so far.
<!--
{{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.


{| class="wikitable"
{| class="wikitable"
!  !! [[Nano 2G]] !! [[Nano 3G]] !! [[Nano 4G]] !! [[Nano 5G]] !! [[Nano 6G|"Nano" 6G]]<ref name="nano6g"/> !! [[Classic 1G]] !! [[Classic 2G]] !! [[Classic 3G]]
!  !! [[Nano 2G]] !! [[Nano 3G]] !! [[Nano 4G]] !! [[Nano 5G]] !! [[Nano 6G]] !! [[Nano 7G]] !! [[Classic 1G]] !! [[Classic 2G]] !! [[Classic 3G]]
|-
|-
| Code execution
| Code execution
Line 8: 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">'''No'''<ref name="newexploit"/></span>
| <span style="color:green">'''Tethered'''</span>
| <span style="color:red">'''No'''<ref name="newexploit"/></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:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''No'''<ref name="uartnotneeded"/></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>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</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>
|-
| [[U-Boot]]
| <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:red">'''No'''</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>
|-
|-
| iBugger<ref name="ibugger"/>
| [[emCORE]]
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Yes'''<ref name="sram"/></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>
| <span style="color:grey">'''Yes'''<ref name="sram"/></span>
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Yes'''<ref name="sram"/></span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Yes'''<ref name="sram"/></span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
|-
| emBIOS
| [https://www.rockbox.org/ Rockbox]
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:grey">'''Partially'''</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>
| <span style="color:green">'''Yes'''</span>
|-
| [[Linux]]
| <span style="color:grey">'''Partially'''</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:red">'''No'''</span>
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Partially'''</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>
|-
|-
| I2C
| Boot [[OSOS]]
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</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:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</span>
| <span style="color:green">'''Yes'''</span>
|-
|-
| Backlight
| SDRAM
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</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:green">'''Yes'''</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:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Untested'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
|-
| LCD
| 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:green">'''Yes'''</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: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">'''In progress'''</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
| 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:green">'''Yes'''</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: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:grey">'''No'''<ref name="tethered"/></span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
| LCD
| <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: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>
|-
|-
| Clickwheel
| 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>
| <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:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
| Audio
| <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 103: 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:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
|-
| Audio
| 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>
Line 111: 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: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
| Power management
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Partially'''</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:red">'''No'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:red">'''No'''</span>
| <span style="color:grey">'''Partially'''</span>
|-
|-
| Power management
| RTC
| <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 131: Line 212:
| <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>
|-
|-
| Firmware encryption
| Piezo
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Partially'''</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:grey">'''N/A'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:grey">'''N/A'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:grey">'''Partially'''</span>
| <span style="color:green">'''Yes'''</span>
| <span style="color:green">'''Yes'''</span>
|-
|-
| Accelerometer
| Accelerometer
Line 150: Line 233:
| <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:grey">'''N/A'''</span>
| <span style="color:grey">'''N/A'''</span>
| <span style="color:grey">'''N/A'''</span>
| <span style="color:grey">'''N/A'''</span>
Line 157: Line 241:
===Annotations===
===Annotations===
<references>
<references>
<ref name="newexploit">We need a new exploit to execute code on this device.</ref>
<ref name="uartnotneeded">UART is not really needed here as we can already access the device via USB.</ref>
<ref name="uartnotneeded">UART is not really needed here as we can already access the device via USB.</ref>
<ref name="ibugger">[[iBugger]] is being replaced with [[emBIOS]].</ref>
<ref name="nano6g7g">Untethered Nano 6G and Nano 7G code execution is implemented using CVE-2010-1797, tethered is implemented using [[S5Late]]/[[wInd3x]]</ref>
<ref name="sram">This iBugger version is very limited as we only have access to the SRAM. This is because the bigger SDRAM is not initialized at the time when our exploit is launched. Someone needs to figure out how to initialize it.</ref>
<ref name="tethered">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>
<ref name="nano6g">The "Nano" 6G is something entirely new, that doesn't seem to have much in common with the older generations of the Nano series. We don't yet know how this device works and if we want to do something with it at all.</ref>
</references>
</references>

Latest revision as of 22:40, 30 March 2026

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.

iPod nano (2nd generation) iPod nano (3rd generation) iPod nano (4th generation) iPod nano (5th generation) iPod nano (6th generation) iPod nano (7th generation) iPod classic (6th generation) iPod classic (6th generation) iPod classic (6th generation)
Code execution Yes Yes Yes Tethered Yes[1] Yes[1] Yes Yes Yes
Firmware decryption Yes Yes Yes Yes Yes Yes Yes Yes Yes
U-Boot Yes No No Yes No Yes No No No
emCORE Yes No Yes No No No Yes Yes Yes
Rockbox Yes Partially Partially No No No Yes Yes Yes
Linux Partially No No Partially No Partially No No No
Boot retailOS Yes Yes No No[2] No No Yes Yes Yes
SDRAM Yes Yes Yes No[2] No Yes Yes Yes Yes
UART Yes Yes No[3] Yes No Yes Yes Yes Yes
USB Yes Yes Yes Yes No Yes Yes Yes Yes
SPI Unused Yes No No No No Yes Yes Yes
I2C Yes Yes Yes No No Yes Yes Yes Yes
Backlight Yes Yes Yes No[2] No No[2] Yes Yes Yes
LCD Yes Yes Yes Yes No Yes Yes Yes Yes
Clickwheel Yes Yes No No N/A N/A 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 Partially No No No No Partially Partially Partially
RTC Yes No No No No No Yes Yes Yes
Piezo Yes Yes Yes No N/A N/A Yes Yes Yes
Accelerometer N/A N/A Yes No No Yes N/A N/A N/A

Annotations

  1. 1.0 1.1 Untethered Nano 6G and Nano 7G code execution is implemented using CVE-2010-1797, tethered is implemented using S5Late/wInd3x
  2. 2.0 2.1 2.2 2.3 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.