<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=760ceb3b9c0ba4872cadf3ce35a7a494</id>
	<title>freemyipod - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=760ceb3b9c0ba4872cadf3ce35a7a494"/>
	<link rel="alternate" type="text/html" href="https://freemyipod.org/wiki/Special:Contributions/760ceb3b9c0ba4872cadf3ce35a7a494"/>
	<updated>2026-04-09T02:46:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22195</id>
		<title>RetailOS Options</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22195"/>
		<updated>2025-12-30T12:01:51Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: fix title and duplicate row&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:retailOS Options}}&lt;br /&gt;
&lt;br /&gt;
[[retailOS]] has some &#039;secret&#039; options that you can enable by placing files into iPod_Control/Device.&lt;br /&gt;
&lt;br /&gt;
The following table shows all known options, with information on what device are they supported. Some of these appear to have no cross-references in [[User:Q3k|q3k]]&#039;s decompilation, but that might be a tooling issue. Ideally, we should test every single one of these :). &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | Name&lt;br /&gt;
! colspan=1 | [[Nano 5G]]&lt;br /&gt;
! colspan=3 | [[Nano 6G]]&lt;br /&gt;
! rowspan=2 | Notes&lt;br /&gt;
|-&lt;br /&gt;
! 1.0.2&lt;br /&gt;
! 1.0&lt;br /&gt;
! 1.1&lt;br /&gt;
! 1.2&lt;br /&gt;
|-&lt;br /&gt;
| _enable_options&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Required for any other option to work.&lt;br /&gt;
|-&lt;br /&gt;
| _6bits_accel&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _EQBiasScale&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainDB&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainLimit&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQPreset&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQ_HPF_Fc&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _accel_data&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _accel_state_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_pde&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_r2d&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_sfd&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _autopow_overlay&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _battery_always_low&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _bvtpowertest&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _camera_one_to_one&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _camera_tvout&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _car_adapter&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _clock_second_tick_type&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compare_gk2d_tdraw_perf&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_benchmark&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_fps&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_show_overdraw&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _continuous_display_update&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_disable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_long&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_med&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dartboard&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Weird mode in which menu/play are swapped and iTunes database seems to be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| _deblocking_off&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _debug_db&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _demo_freeze_time&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _demo_layout_toggle&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_bpfix&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_cache&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_clock_gating&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_hibe&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_jpeg_decoder&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_mbx_timeout&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Mailbox timeouts? PowerVR MBX timeouts? Untested.&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| _enable_options not required.&lt;br /&gt;
|-&lt;br /&gt;
| _disable_sleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_unsplit_decoders&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dont_reject_vid&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _drag_back_perf&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dragster_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_amc_logfile&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_crash_logging&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Writes high-level logs into iPod_Control/Logs.&lt;br /&gt;
|-&lt;br /&gt;
| _enable_memory_logging&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_pcm_write2file&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_screenshots&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_tpodlog&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fast_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _faster_baud_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _firewire_supported&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fixed_brightness&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fm_fieldtesting&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_AACHE&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_AACLC&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_volume_level&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _go_fast&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hang_frame_drop&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _heap_beep&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibe_beep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibe_sleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibernation_ignores_accessories&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hifi_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hold3beep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Halt and wait for JTAG in C_exception_handler. Probably.&lt;br /&gt;
|-&lt;br /&gt;
| _honor_repeat&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ignore_volume_pref&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _isp_manual&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _isp_settings_file&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _krypton_firmware&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _krypton_no_autoupdate&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _log_memory_on_vol_keys&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _log_sys_model&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _look_ahead_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mecca_trace_debug&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mie_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mikey_state_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mikey_verbose_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _minutes_to_standby&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mockup_mode&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _nand_high_clock&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_deepsleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Preempted by _short_deepsleep.&lt;br /&gt;
|-&lt;br /&gt;
| _no_look_ahead_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_vc0_autopower&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _np_overlay_persist&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _orient_me_not&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_event_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_heartbeat&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_seconds_to_hibernate&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_steps_1000x&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_steps_100x&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_1000x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_100x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_10x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_xyz_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _photo_albums_test&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _power_testing&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _pushui_app_icon_show&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _quick_3bits&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| _enable_options not required.&lt;br /&gt;
|-&lt;br /&gt;
| _raw_uart_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rds_robot&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rds_robot_internal&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _record_max_16mb&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rental_notify_always&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _reset_rtc&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_graphics_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_hibernation&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_screen_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _serial_acc_iap_status&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _shake_data&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _short_deepsleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_autobaud&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_bin_voltage&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_brightness&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_cache_size&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_fixed_time&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_fps&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_headset_model&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_max_battery&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_memory&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_numeric_volume&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Displays numeric volume when changing volume.&lt;br /&gt;
|-&lt;br /&gt;
| _show_pll&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_speed&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_stuck_accelerometer_axis&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_voltage&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Displays battery voltage at bottom of screen.&lt;br /&gt;
|-&lt;br /&gt;
| _skipgamedrm&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Seemingly allows Manifest.plist.p7b to not be present when reading eApps/games. If present, will still be checked.&lt;br /&gt;
|-&lt;br /&gt;
| _speed&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| File contents read (number likely expected). Default -1.&lt;br /&gt;
|-&lt;br /&gt;
| _springboard_always_hint&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_fast_swipe_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_edit_mode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_fast_swipe_decel_factor&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_slow_swipe_decel_factor&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_text_mode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumblermode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _sw_max_minutes&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _sw_seconds_to_dim&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tcsize&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| File contents read (number likely expected).&lt;br /&gt;
|-&lt;br /&gt;
| _tgfx_benchmark&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _thermal_Stress_enable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tpodlogprint_to_uart&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _try_spirit_codecs&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_auto_scan&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_blend_mono_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_blend_stereo_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_disable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_time_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_hicut_disable&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_events_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_parsed_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_raw_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_rt_validation_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_region_worldwide_enable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_region_worldwide_force&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging_start_delay&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_softmute_disable&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_volume_buttons_walk_frequency&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tvout_video_display&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tvoutwidescreen&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _uart2_debug&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Preempted by _uart30pin_debug.&lt;br /&gt;
|-&lt;br /&gt;
| _uart30pin_debug&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ultra_high_power&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_authentication_optional&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_lame_resampling&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_negotiation_optional&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_resampling_method&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_samplerate_match_style&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_show_status&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_sinewave&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_test_mode&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_hub_subclass&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_swap_configs&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_SW_ALAC_decoder&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_aac_encoder&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_tdraw_in_tgfx&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _volume_single_step&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _vp_lang&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _wheel_app_data&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _wheel_raw_data&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _writerawyuvstills&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User:760ceb3b9c0ba4872cadf3ce35a7a494&amp;diff=22189</id>
		<title>User:760ceb3b9c0ba4872cadf3ce35a7a494</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User:760ceb3b9c0ba4872cadf3ce35a7a494&amp;diff=22189"/>
		<updated>2025-12-29T08:53:08Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;find me in the iPod Nano Hacking discord! my web site:&lt;br /&gt;
https://760ceb3b9c0ba4872cadf3ce35a7a494.neocities.org/&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22188</id>
		<title>RetailOS Options</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22188"/>
		<updated>2025-12-29T08:51:37Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: rewrote table + added nano 6g&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[retailOS]] has some &#039;secret&#039; options that you can enable by placing files into iPod_Control/Device.&lt;br /&gt;
&lt;br /&gt;
The following table shows all known options, with information on what device are they supported. Some of these appear to have no cross-references in [[User:Q3k|q3k]]&#039;s decompilation, but that might be a tooling issue. Ideally, we should test every single one of these :). &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | Name&lt;br /&gt;
! colspan=1 | [[Nano 5G]]&lt;br /&gt;
! colspan=3 | [[Nano 6G]]&lt;br /&gt;
! rowspan=2 | Notes&lt;br /&gt;
|-&lt;br /&gt;
! 1.0.2&lt;br /&gt;
! 1.0&lt;br /&gt;
! 1.1&lt;br /&gt;
! 1.2&lt;br /&gt;
|-&lt;br /&gt;
| _enable_options&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Required for any other option to work.&lt;br /&gt;
|-&lt;br /&gt;
| _6bits_accel&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _EQBiasScale&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainDB&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainLimit&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQPreset&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQ_HPF_Fc&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Contents read.&lt;br /&gt;
|-&lt;br /&gt;
| _accel_data&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _accel_state_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_pde&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_r2d&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _amc_sfd&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _autopow_overlay&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _battery_always_low&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _bvtpowertest&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _camera_one_to_one&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _camera_tvout&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _car_adapter&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _clock_second_tick_type&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compare_gk2d_tdraw_perf&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_benchmark&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_fps&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _compositor_show_overdraw&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _continuous_display_update&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_disable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_long&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_nextprev_med&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dartboard&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Weird mode in which menu/play are swapped and iTunes database seems to be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| _deblocking_off&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _debug_db&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _demo_freeze_time&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _demo_layout_toggle&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_bpfix&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_cache&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_clock_gating&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_hibe&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_jpeg_decoder&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_mbx_timeout&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Mailbox timeouts? PowerVR MBX timeouts? Untested.&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| _enable_options not required.&lt;br /&gt;
|-&lt;br /&gt;
| _disable_sleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _disable_unsplit_decoders&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dont_reject_vid&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _drag_back_perf&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _dragster_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_amc_logfile&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_crash_logging&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Writes high-level logs into iPod_Control/Logs.&lt;br /&gt;
|-&lt;br /&gt;
| _enable_memory_logging&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_options&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Required for any other option to work.&lt;br /&gt;
|-&lt;br /&gt;
| _enable_pcm_write2file&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_screenshots&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _enable_tpodlog&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fast_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _faster_baud_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _firewire_supported&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fixed_brightness&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _fm_fieldtesting&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_AACHE&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_AACLC&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _force_volume_level&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _go_fast&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hang_frame_drop&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _heap_beep&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibe_beep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibe_sleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hibernation_ignores_accessories&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hifi_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _hold3beep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Halt and wait for JTAG in C_exception_handler. Probably.&lt;br /&gt;
|-&lt;br /&gt;
| _honor_repeat&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ignore_volume_pref&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _isp_manual&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _isp_settings_file&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _krypton_firmware&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _krypton_no_autoupdate&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _log_memory_on_vol_keys&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _log_sys_model&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _look_ahead_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mecca_trace_debug&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mie_on&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mikey_state_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mikey_verbose_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _minutes_to_standby&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _mockup_mode&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _nand_high_clock&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_deepsleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Preempted by _short_deepsleep.&lt;br /&gt;
|-&lt;br /&gt;
| _no_look_ahead_video_encoding&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_vc0_autopower&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _np_overlay_persist&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _orient_me_not&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_event_logging&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_heartbeat&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_seconds_to_hibernate&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_steps_1000x&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_steps_100x&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_1000x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_100x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_10x&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ped_xyz_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _photo_albums_test&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _power_testing&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _pushui_app_icon_show&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _quick_3bits&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| _enable_options not required.&lt;br /&gt;
|-&lt;br /&gt;
| _raw_uart_debug&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rds_robot&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rds_robot_internal&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _record_max_16mb&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _rental_notify_always&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _reset_rtc&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_graphics_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_hibernation&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _seconds_to_screen_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _serial_acc_iap_status&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _shake_data&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _short_deepsleep&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_autobaud&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_bin_voltage&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_brightness&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_cache_size&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_fixed_time&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_fps&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_headset_model&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_max_battery&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_memory&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_numeric_volume&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Displays numeric volume when changing volume.&lt;br /&gt;
|-&lt;br /&gt;
| _show_pll&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_speed&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_stuck_accelerometer_axis&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _show_voltage&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Displays battery voltage at bottom of screen.&lt;br /&gt;
|-&lt;br /&gt;
| _skipgamedrm&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Seemingly allows Manifest.plist.p7b to not be present when reading eApps/games. If present, will still be checked.&lt;br /&gt;
|-&lt;br /&gt;
| _speed&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| File contents read (number likely expected). Default -1.&lt;br /&gt;
|-&lt;br /&gt;
| _springboard_always_hint&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_fast_swipe_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_edit_mode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_fast_swipe_decel_factor&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_slow_swipe_decel_factor&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumbler_text_mode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _springboard_tumblermode&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _sw_max_minutes&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _sw_seconds_to_dim&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tcsize&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| File contents read (number likely expected).&lt;br /&gt;
|-&lt;br /&gt;
| _tgfx_benchmark&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _thermal_Stress_enable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tpodlogprint_to_uart&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _try_spirit_codecs&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_auto_scan&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_blend_mono_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_blend_stereo_threshold&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_disable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_time_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_hicut_disable&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_events_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_parsed_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_raw_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_rt_validation_off&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_show&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_region_worldwide_enable&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_region_worldwide_force&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging_start_delay&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_softmute_disable&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tuner_volume_buttons_walk_frequency&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tvout_video_display&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _tvoutwidescreen&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _uart2_debug&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Preempted by _uart30pin_debug.&lt;br /&gt;
|-&lt;br /&gt;
| _uart30pin_debug&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _ultra_high_power&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_authentication_optional&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_lame_resampling&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_negotiation_optional&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_resampling_method&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_samplerate_match_style&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_show_status&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_sinewave&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_test_mode&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_hub_subclass&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _usb_swap_configs&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_SW_ALAC_decoder&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_aac_encoder&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _use_tdraw_in_tgfx&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _volume_single_step&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _vp_lang&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _wheel_app_data&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _wheel_raw_data&lt;br /&gt;
| {{yes}}&amp;lt;ref name=&amp;quot;unused&amp;quot;&amp;gt;Possibly unused?&amp;lt;/ref&amp;gt;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| _writerawyuvstills&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Template:No&amp;diff=22187</id>
		<title>Template:No</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Template:No&amp;diff=22187"/>
		<updated>2025-12-29T07:50:30Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;{| class=&amp;quot;wikitable&amp;quot; |- |&amp;lt;/noinclude&amp;gt;style=&amp;quot;background:#FFC7C7;color:black;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&amp;quot; class=&amp;quot;table-no&amp;quot;|{{{1|N...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;/noinclude&amp;gt;style=&amp;quot;background:#FFC7C7;color:black;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&amp;quot; class=&amp;quot;table-no&amp;quot;|{{{1|No}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Template:Yes&amp;diff=22186</id>
		<title>Template:Yes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Template:Yes&amp;diff=22186"/>
		<updated>2025-12-29T07:50:13Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: Created page with &amp;quot;&amp;lt;noinclude&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |- |&amp;lt;/noinclude&amp;gt;style=&amp;quot;background:#9EFF9E;color:black;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&amp;quot; class=&amp;quot;table-yes&amp;quot;|{{{1...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;/noinclude&amp;gt;style=&amp;quot;background:#9EFF9E;color:black;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&amp;quot; class=&amp;quot;table-yes&amp;quot;|{{{1|Yes}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22165</id>
		<title>RetailOS Options</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22165"/>
		<updated>2025-07-04T04:47:10Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: change link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:retailOS Options}}&lt;br /&gt;
[[RetailOS]] has some &#039;secret&#039; options that you can enable by placing files into iPod_Control/Device.&lt;br /&gt;
&lt;br /&gt;
The following table shows all known options, with information on what device are they supported. Some of these appear to have no cross-references in q3k&#039;s decompilation, but that might be a tooling issue. Ideally, we should test every single one of these :).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Functionality !! Nano 5G&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;_enable_options&#039;&#039;&#039; || &#039;&#039;&#039;This file must be present for any other option to work.&#039;&#039;&#039; || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_numeric_volume || Displays numeric value when changing volume. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_cache || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _go_fast || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_voltage || Displays battery voltage at bottom of screen. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_speed || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_memory || Displays heap statistics at bottom of screen. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_fps || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_mbx_timeout || Mailbox timeouts? PowerVR MBX timeouts? Untested. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tvoutwidescreen || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _enable_logging || Writes high-level logs into iPod_Control/Logs. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _enable_crash_logging || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _enable_memory_logging || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_jpeg_decoder || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_sleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hibe_sleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_hibe || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hibe_beep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _short_deepsleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_deepsleep || Preempted by _short_deepsleep. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _dont_reject_vid || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tcsize || File contents read (number likely expected).  || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _speed || File contents read (number likely expected). Default -1. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _no_vc0_autopower || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _autopow_overlay || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _dartboard || Weird mode in which menu/play are swapped and iTunes database seems to be ignored. || ✔️ &lt;br /&gt;
|-&lt;br /&gt;
| _show_brightness || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _car_adapter || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_swap_configs || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_sinewave || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_authentication_optional || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_negotiation_optional || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_test_mode || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_lame_resampling || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_samplerate_match_style || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_resampling_method || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_show_status || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _serial_acc_iap_status || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _battery_always_low || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_cache_size || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_unsplit_decoders || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _heap_beep || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_autobaud || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ignore_volume_pref || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _record_max_16mb || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _vp_lang || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _mockup_mode || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _tvout_video_display || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _deblocking_off || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _force_AACHE || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _force_AACLC || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _reset_rtc || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _honor_repeat || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _rental_notify_always || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _uart30pin_debug || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _uart2_debug || Preempted by _uart30pin_debug. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _mie_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _dragster_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _try_spirit_codecs || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _amc_r2d || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _mecca_trace_debug || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _use_aac_encoder || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _wheel_raw_data || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _wheel_app_data || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _accel_data || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _orient_me_not || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _shake_data || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _hold3beep || Halt and wait for JTAG in C_exception_handler. Probably. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _skipgamedrm || Seemingly allows Manifest.plist.p7b to not be present when reading eApps/games. If present, will still be checked. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _firewire_supported || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _debug_db || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _EQBiasScale || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainDB || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQ_HPF_Fc || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQPreset || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainLimit || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _6bits_accel || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_bpfix || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_events_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_time_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_raw_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_parsed_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_auto_scan || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_softmute_disable || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_hicut_disable || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hifi_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_look_ahead_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _look_ahead_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _bvtpowertest || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_clock_gating || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _writerawyuvstills || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_10x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _power_testing || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_xyz_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_heartbeat || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_100x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_1000x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _log_sys_model || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _fm_fieldtesting || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _nand_high_clock || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_max_battery || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_fixed_time || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _photo_albums_test || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_pll || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hang_frame_drop || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit || _enable_options not required. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _quick_3bits || _enable_options not required. || ✔️ (Unused?)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic&amp;diff=22164</id>
		<title>Classic</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic&amp;diff=22164"/>
		<updated>2025-07-03T04:55:00Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: fix broken page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Classic 6G]]&lt;br /&gt;
{{DISPLAYTITLE:iPod classic}}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22163</id>
		<title>Classic 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22163"/>
		<updated>2025-06-23T05:10:24Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: fix all dead links + add links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod classic (6th generation)}}&lt;br /&gt;
This page concerns the mainline iPods branded with the &amp;quot;classic&amp;quot; name. These iPods mark the switch from PortalPlayer to Samsung processors and were the last mainline iPods ever released. Four versions of this iPod exist, all branded with &amp;quot;classic&amp;quot;: the [[#Initial|initial version]], released in 2007, a thinner [[#Rev A|Rev A]], released in 2008, [[#Rev B|Rev B]] released in 2009 and a final Rev C revision not documented here. These revisions are sometimes called the 6th, 6.5th, 7th, and 7.5th generation respectively.&lt;br /&gt;
&lt;br /&gt;
==Initial==&lt;br /&gt;
This is the first version of the 6th generation &amp;quot;classic&amp;quot; branded iPod. It was available in an 80GB and 160GB model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:classic_1g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:classic_1g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
|&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the [[Nano 3G]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [https://web.archive.org/web/20101130050518/http://sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the [[Nano 3G]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [https://web.archive.org/web/20110626184448id_/http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE, 338S0394, A1GIO736, MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE, 338S0445, 2114.102, ZPD7383Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*&amp;lt;s&amp;gt;TheSeven&#039;s broken Classic 1G board (High-res): [http://img43.imageshack.us/img43/6619/6gback.jpg front] [http://img7.imageshack.us/img7/1858/6gfront.jpg back]&amp;lt;/s&amp;gt;&amp;lt;sup&amp;gt;(dead link)&amp;lt;/sup&amp;gt;&lt;br /&gt;
Other: &lt;br /&gt;
*https://web.archive.org/web/20100527224740/http://homepage.mac.com/marc.heijligers/audio/ipod/comparison/measurements/measurements.html&lt;br /&gt;
&lt;br /&gt;
==Rev A==&lt;br /&gt;
This is a revised version of the 6th generation iPod with the &amp;quot;classic&amp;quot; name. It is thinner than the [[#Initial||160GB initial model]] and was only available with 120GB storage.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:classic_2g_frt_a.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:classic_2g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
&lt;br /&gt;
Almost exactly the same hardware as the [[#Initial|initial model]], except that region A is populated. This presumably communicates with the new headphone/remote that Apple chose for this device to support.&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.chinaveboss.com/faq_info.html?faqs_id=53&amp;amp;fcPath=1&amp;amp;zenid=19755464b2fde0cb4f7a8877cfa6649c&amp;lt;/s&amp;gt;&amp;lt;sup&amp;gt;(dead link)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rev B==&lt;br /&gt;
Rev B is a re-introduced 160GB revision of the classic, announced on September 9, 2009. It is the same size as the [[#Rev A|Rev A]] model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:Front_3g.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:Back_3g.jpg|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
&lt;br /&gt;
No better teardown pictures of this revision have been found or made by us yet. There is, however, [http://www.ilounge.com/index.php/news/comments/ipod-classic-160gb-changes-new-firmware-engraving/ a basic guide of the non-electronic differences] by iLounge. Since the model number is the same as [[#Rev A|Rev A]], there probably aren&#039;t any worthwhile (if any) changes in the hardware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| [https://freemyipod.org/wiki/S5L8702 Samsung S5L8702]&lt;br /&gt;
|337S3526 8702 N26P9U4 1011 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the [[Nano 3G]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [https://web.archive.org/web/20101130050518/http://sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the [[Nano 3G]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [https://web.archive.org/web/20110626184448id_/http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE 338S0394 AICK0952 MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE 338S0445 78030 82 D780113&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|4066T 84453&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22162</id>
		<title>Classic 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22162"/>
		<updated>2025-06-23T05:00:03Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: get rid of &amp;quot;terminology&amp;quot; and move into h3 heading + move images to Components subheading + minor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod classic (6th generation)}}&lt;br /&gt;
This page concerns the mainline iPods branded with the &amp;quot;classic&amp;quot; name. These iPods mark the switch from PortalPlayer to Samsung processors and were the last mainline iPods ever released. Four versions of this iPod exist, all branded with &amp;quot;classic&amp;quot;: the [[#Initial|initial version]], released in 2007, a thinner [[#Rev A|Rev A]], released in 2008, [[#Rev B|Rev B]] released in 2009 and a final Rev C revision not documented here. These revisions are sometimes called the 6th, 6.5th, 7th, and 7.5th generation respectively.&lt;br /&gt;
&lt;br /&gt;
==Initial==&lt;br /&gt;
This is the first version of the 6th generation &amp;quot;classic&amp;quot; branded iPod. It was available in an 80GB and 160GB model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:classic_1g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:classic_1g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
|&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE, 338S0394, A1GIO736, MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE, 338S0445, 2114.102, ZPD7383Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*TheSeven&#039;s broken Classic 1G board (High-res): [http://img43.imageshack.us/img43/6619/6gback.jpg front] [http://img7.imageshack.us/img7/1858/6gfront.jpg back]&lt;br /&gt;
Other:&lt;br /&gt;
*http://homepage.mac.com/marc.heijligers/audio/ipod/comparison/measurements/measurements.html&lt;br /&gt;
&lt;br /&gt;
==Rev A==&lt;br /&gt;
This is a revised version of the 6th generation iPod with the &amp;quot;classic&amp;quot; name. It is thinner than the 160GB [[#Initial||initial revision]] and was only available with 120GB storage.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:classic_2g_frt_a.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:classic_2g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
Almost exactly the same hardware as the [[#Initial]], except that region A is populated. This presumably communicates with the new headphone/remote that Apple chose for this device to support.&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.chinaveboss.com/faq_info.html?faqs_id=53&amp;amp;fcPath=1&amp;amp;zenid=19755464b2fde0cb4f7a8877cfa6649c&lt;br /&gt;
&lt;br /&gt;
==Rev B==&lt;br /&gt;
Rev B is a re-introduced 160GB revision of the classic, announced on September 9, 2009. It is the same size as the [[#Rev A|Rev A]] model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
[[File:Front_3g.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:Back_3g.jpg|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
&lt;br /&gt;
No better teardown pictures of this revision have been found or made by us yet. There is, however, [http://www.ilounge.com/index.php/news/comments/ipod-classic-160gb-changes-new-firmware-engraving/ a basic guide of the non-electronic differences] by iLounge. Since the model number is the same as [[#Rev A|Rev A]], there probably aren&#039;t any worthwhile (if any) changes in the hardware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| [https://freemyipod.org/wiki/S5L8702 Samsung S5L8702]&lt;br /&gt;
|337S3526 8702 N26P9U4 1011 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE 338S0394 AICK0952 MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE 338S0445 78030 82 D780113&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|4066T 84453&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic&amp;diff=22161</id>
		<title>Classic</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic&amp;diff=22161"/>
		<updated>2025-06-23T04:56:53Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod classic}}&lt;br /&gt;
#REDIRECT [[Classic 6G]]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_7G&amp;diff=22160</id>
		<title>Nano 7G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_7G&amp;diff=22160"/>
		<updated>2025-06-23T04:56:12Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (7th generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:Nano7g_front.jpg|500px|thumb|none|Photo of the circuit board]]&lt;br /&gt;
[[File:Nano7g_back.jpg|500px|thumb|none|Close up of the larger chips on the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff0004&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| PMIC&lt;br /&gt;
| &lt;br /&gt;
| Apple 338S1099&lt;br /&gt;
| Guessing based on connectivity to power components around.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff9024&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| Bluetooth + FM radio&lt;br /&gt;
| Broadcom BCM2078KUBG&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#f3e00e&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| NXP Semiconductors 1609A1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#16dc81&amp;quot;&amp;gt;Green&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 75203 23017&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#2343e8&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 75292 98820&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND flash&lt;br /&gt;
| Toshiba THGBX2G7D2JLA01 128 Gb (16 GB)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff9024&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| Touchscreen controller&lt;br /&gt;
| Texas Instruments 343S0538&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#f3e00e&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Apple 338S1146&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#16dc81&amp;quot;&amp;gt;Green&amp;lt;/span&amp;gt;&lt;br /&gt;
| SoC/CPU&lt;br /&gt;
| S5L8740&lt;br /&gt;
| 339S0193&lt;br /&gt;
| 8740 per IMG1. Guessing based on similar package to N6G SoC/CPU. Also has the most diffpairs running to/from it (from delayered PCB).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
* https://www.ifixit.com/Teardown/iPod+Nano+7th+Generation+Teardown/10826&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Reviews:&lt;br /&gt;
* TODO&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Core ==&lt;br /&gt;
&lt;br /&gt;
Cortex A5 according to CP15:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ID code: 0x410fc050&lt;br /&gt;
  Implementer: ARM&lt;br /&gt;
  Variant: 0x0&lt;br /&gt;
  Architecture: See CPUID&lt;br /&gt;
  Part number: c05, Revision: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Memory Map ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x38C00000&lt;br /&gt;
| AES&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500000&lt;br /&gt;
| CLKCON&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C700000&lt;br /&gt;
| TIMER&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CC00000&lt;br /&gt;
| UART0&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF00000&lt;br /&gt;
| GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D100000&lt;br /&gt;
| CHIPID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clock Gates ==&lt;br /&gt;
&lt;br /&gt;
There is no big debug table with all clock gates in N7G RetailOS, so the following has been written out by hand:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Bits (clear to power on) !! Meaning !! Source&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50006C&lt;br /&gt;
| 0x2000&lt;br /&gt;
| &#039;SPI power&#039;&lt;br /&gt;
| WTF DevicePowerManagement.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004C&lt;br /&gt;
| 0x4&lt;br /&gt;
| &#039;SPI power&#039;&lt;br /&gt;
| WTF DevicePowerManagement.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004c&lt;br /&gt;
| 0x1f800020&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500058&lt;br /&gt;
| 0x60&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3c50006c&lt;br /&gt;
| 0xc0007f&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=22159</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=22159"/>
		<updated>2025-06-23T04:54:09Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (6th generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_6g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_6g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Cirrus Logic CLI1544C0&lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| PMU&lt;br /&gt;
| Dialog D1830B&lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| FM receiver&lt;br /&gt;
| Silicon Labs Si4800&lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8723&lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| Samsung APL3278A01 ARM Application processor&lt;br /&gt;
Samsung K4X51323PI Mobile DDR SDRAM (64 MB)&lt;br /&gt;
&lt;br /&gt;
Rusty Mercury says it&#039;s a Samsung S5L8723, a step up from the previous Samsung 8730. [http://twitter.com/RustyMercury/status/23268805957 source]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| Touchscreen controller&lt;br /&gt;
| Cypress CY8C20746B&lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The red and black wires lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;br /&gt;
Reviews:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2010/09/6th-generation-ipod-nano.ars&lt;br /&gt;
*http://www.ubmtechinsights.com/reports-and-subscriptions/investigative-analysis/apple-ipod-nano/&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_5G&amp;diff=22158</id>
		<title>Nano 5G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_5G&amp;diff=22158"/>
		<updated>2025-06-23T04:53:52Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (5th generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_5g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_5g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8730&lt;br /&gt;
| 339S0081 ARM, K4X51323PG-UGC6, EDE168AG 0928, APL0378A00, N1X2XW 0931&lt;br /&gt;
| Printed backwards on the chip - how sneaky. ARM1176JZF-S core (per CP15 data).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Various 8/16 GB chips&lt;br /&gt;
| TH58NVG6D2ELA49, ID8038, TAIWAN, 09299AE&lt;br /&gt;
| One example is TH58NVG6D2ELA49 visible on the iFixit Teardown&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| Probably Dialog&lt;br /&gt;
| 338S0707, -AD, 09278HGZ&lt;br /&gt;
| Similar looking and named chips like this have been power managers. Apple uses chips like these in just about every device.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Cirrus Logic CLI1480A&lt;br /&gt;
| 338S0559, ATWV0926, SGP&lt;br /&gt;
| Also found in the Touch 3G. Stereo CODEC w/ Headphone and Speaker Amp&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00213611.pdf LIS331DLM]&lt;br /&gt;
| 33DM, 2910&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0630, CK9Y, 925&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Code Execution ==&lt;br /&gt;
&lt;br /&gt;
Code execution on the Nano 5G was achieved by blindly porting [[WInd3x|wInd3x]].&lt;br /&gt;
&lt;br /&gt;
== CP15 Registers ==&lt;br /&gt;
&lt;br /&gt;
Dump of CP15 registers from bootrom context:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! cX !! cY !! opc2 !! Description !! Value !! Interpretation&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Main ID&lt;br /&gt;
| 410fb764&lt;br /&gt;
| ARM (0x41), Variant 0, Architecture: see CPUID, Part: ARM1176&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Cache Type&lt;br /&gt;
| 1d152152&lt;br /&gt;
| Write back, format C cache lockdown, Register 7 cache cleaning operations, separate I/D caches; data cache: (no restriction on page allocation, 16KB, 4-way associative, 2 word line length) istrunction cache: (no restrictions on page allocation, 16KB, 4-way, 2 word)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| TCM Status&lt;br /&gt;
| 00000000&lt;br /&gt;
| No tightly coupled memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 3&lt;br /&gt;
| TLB Type&lt;br /&gt;
| 00000800&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Processor Feature 0&lt;br /&gt;
| 00000111&lt;br /&gt;
| Jazelle, Thumb1, ARM (no Thumb2)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Processor Feature 1&lt;br /&gt;
| 00000011&lt;br /&gt;
| Security Extensions Architecture v1, Standard ARMv4 programmer&#039;s model. No microcontroller model.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Debug Feature 0&lt;br /&gt;
| 00000033&lt;br /&gt;
| v6.1 Secure Debug, v6.1 Debug.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| Auxiliary Feature 0&lt;br /&gt;
| 00000000&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| Memory Model Feature 0&lt;br /&gt;
| 01130003&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| Memory Model Feature 1&lt;br /&gt;
| 10030302&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 6&lt;br /&gt;
| Memory Model Feature 2&lt;br /&gt;
| 01222100&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 7&lt;br /&gt;
| Memory Model Feature 3&lt;br /&gt;
| 00000000&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| Instruction Set Feature Attribute 0&lt;br /&gt;
| 00140011&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction Set Feature Attribute 1&lt;br /&gt;
| 12002111&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| Instruction Set Feature Attribute 2&lt;br /&gt;
| 11231121&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| Instruction Set Feature Attribute 3&lt;br /&gt;
| 01102131&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| Instruction Set Feature Attribute 4&lt;br /&gt;
| 00001141&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 5&lt;br /&gt;
| Instruction Set Feature Attribute 5&lt;br /&gt;
| 00000000&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Control&lt;br /&gt;
| 00450078&lt;br /&gt;
| No Force AP, no TEX remap, CPSR E set to 0 on exception, no VIC, no extended page tables, allow unaligned data access, no fast interrupts, global enable for instruction/data TCM, loads to PC set the T bit, random cache replacement, exceptions vectors at Vector Base Address Register. I$, D$ disabled by wInd3x, branch prediction disabled, no strict alignment fault checking, no MMU.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Auxiliary Control&lt;br /&gt;
| 00000007&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| Coprocessor Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Secure Configuration&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Secure Debug Enable&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Non-Secure Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Translation Table Base 0&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Translation Table Base 1&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| Translation Table Base Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Domain Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| PCA&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| Cache Dirty Status&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Data Cache Lockdown&lt;br /&gt;
| fffffff0&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction Cache Lockdown&lt;br /&gt;
| fffffff0&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Data TCM Region&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction TCM Region&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Data TCM Non-secure Control Access&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| Instruction TCM Non-secure Control Access&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| TCM Selection&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 8&lt;br /&gt;
| 0&lt;br /&gt;
| Cache Behavior Override&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clock Gates ==&lt;br /&gt;
&lt;br /&gt;
The clock gate registers are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500048&lt;br /&gt;
| GATES[0]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004C&lt;br /&gt;
| GATES[1]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500058&lt;br /&gt;
| GATES[4]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500068&lt;br /&gt;
| GATES[8]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50006C&lt;br /&gt;
| GATES[9]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
GATES[2, 3, 5, 6, 7], etc seem to be unused. A clock is enabled by setting a corresponding bit (GATE[n][m]) low. The following clock gates have been extracted by analyzing debug structures in OSOS. We also provide the &#039;numerical&#039; argument that can be passed to the clkgen_{enable,disable}_gate function calls in the BootROM. The BootROM will automatically enable some function-related gates together if one is specified. This is probably a leftover from earlier codebases where one functionality would correspond to one clock gate bit, while now a functionality might be gated behind multiple bits.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Function !! Register(s)/Bit(s) !! Number in BootROM&lt;br /&gt;
|-&lt;br /&gt;
| AES&lt;br /&gt;
| GATE[0][7]&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| AMC&lt;br /&gt;
| GATE[0][3]&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| AMC-core&lt;br /&gt;
| GATE[0][4]&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| AMCSS&lt;br /&gt;
| GATE[1][17]&lt;br /&gt;
| 38&lt;br /&gt;
|-&lt;br /&gt;
| ARM-core&lt;br /&gt;
| GATE[0][15]&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| ARM-icu&lt;br /&gt;
| GATE[0][16]&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| ARM-sleep&lt;br /&gt;
| GATE[0][20]&lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| AXI-bus&lt;br /&gt;
| GATE[1][18]&lt;br /&gt;
| 39&lt;br /&gt;
|-&lt;br /&gt;
| AXI-spine&lt;br /&gt;
| GATE[8][13]&lt;br /&gt;
| 63&lt;br /&gt;
|-&lt;br /&gt;
| AXI-video&lt;br /&gt;
| GATE[8][14]&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| CAMIF&lt;br /&gt;
| GATE[0][17], GATE[8][15]&lt;br /&gt;
| 17, 65&lt;br /&gt;
|-&lt;br /&gt;
| CEATA&lt;br /&gt;
| GATE[0][6]&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| CLCD&lt;br /&gt;
| GATE[8][9]&lt;br /&gt;
| 59&lt;br /&gt;
|-&lt;br /&gt;
| CLCD-OTF&lt;br /&gt;
| GATE[8][10]&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| CSIS&lt;br /&gt;
| GATE[0][18]&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| DDR-MIU&lt;br /&gt;
| GATE[9][17]&lt;br /&gt;
| 89&lt;br /&gt;
|-&lt;br /&gt;
| DMAC0&lt;br /&gt;
| GATE[0][11]&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| DMAC1&lt;br /&gt;
| GATE[0][12]&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| DMAX&lt;br /&gt;
| GATE[8][8]&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| ECC&lt;br /&gt;
| GATE[0][9]&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| ECID&lt;br /&gt;
| GATE[1][14]&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| FMC&lt;br /&gt;
| GATE[0][5]&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| GATE[1][12]&lt;br /&gt;
| 33&lt;br /&gt;
|-&lt;br /&gt;
| H264&lt;br /&gt;
| GATE[8][2], GATE[9][18]&lt;br /&gt;
| 52, 90&lt;br /&gt;
|-&lt;br /&gt;
| H264ENC&lt;br /&gt;
| GATE[4][7], GATE[8][16], GATE[8][17]&lt;br /&gt;
| 60, 66, 67&lt;br /&gt;
|-&lt;br /&gt;
| IIC0&lt;br /&gt;
| GATE[1][4], GATE[9][11]&lt;br /&gt;
| 25, 83&lt;br /&gt;
|-&lt;br /&gt;
| IIC1&lt;br /&gt;
| GATE[1][6], GATE[9][12]&lt;br /&gt;
| 27, 84&lt;br /&gt;
|-&lt;br /&gt;
| IIS0&lt;br /&gt;
| GATE[1][7]&lt;br /&gt;
| 28&lt;br /&gt;
|-&lt;br /&gt;
| IIS1&lt;br /&gt;
| GATE[1][10]&lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| IIS2&lt;br /&gt;
| GATE[1][16]&lt;br /&gt;
| 37&lt;br /&gt;
|-&lt;br /&gt;
| JPEG&lt;br /&gt;
| GATE[0][19]&lt;br /&gt;
| 19&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| GATE[0][1], GATE[9][16]&lt;br /&gt;
| 1, 88&lt;br /&gt;
|-&lt;br /&gt;
| MBX-3D&lt;br /&gt;
| GATE[8][6]&lt;br /&gt;
| 56&lt;br /&gt;
|-&lt;br /&gt;
| MBX-bus&lt;br /&gt;
| GATE[8][7]&lt;br /&gt;
| 57&lt;br /&gt;
|-&lt;br /&gt;
| MBX-core&lt;br /&gt;
| GATE[8][5]&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| MIPI-link&lt;br /&gt;
| GATE[1][19]&lt;br /&gt;
| 40&lt;br /&gt;
|-&lt;br /&gt;
| MIXER&lt;br /&gt;
| GATE[8][1]&lt;br /&gt;
| 51&lt;br /&gt;
|-&lt;br /&gt;
| MPVD&lt;br /&gt;
| GATE[8][3]&lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| PKE&lt;br /&gt;
| GATE[1][13]&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| PL301MPVD&lt;br /&gt;
| GATE[1][21]&lt;br /&gt;
| 42&lt;br /&gt;
|-&lt;br /&gt;
| PRNG&lt;br /&gt;
| GATE[1][0]&lt;br /&gt;
| 21&lt;br /&gt;
|-&lt;br /&gt;
| RINGOSC&lt;br /&gt;
| GATE[4][0]&lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| SCALER&lt;br /&gt;
| GATE[8][4], GATE[9][25]&lt;br /&gt;
| 54, 97&lt;br /&gt;
|-&lt;br /&gt;
| SDIO&lt;br /&gt;
| GATE[0][8]&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| SHA1&lt;br /&gt;
| GATE[0][0]&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| SPD&lt;br /&gt;
| GATE[1][8]&lt;br /&gt;
| 29&lt;br /&gt;
|-&lt;br /&gt;
| SPI0&lt;br /&gt;
| GATE[1][2], GATE[9][13]&lt;br /&gt;
| 23, 85&lt;br /&gt;
|-&lt;br /&gt;
| SPI1&lt;br /&gt;
| GATE[1][11], GATE[9][14]&lt;br /&gt;
| 32, 86&lt;br /&gt;
|-&lt;br /&gt;
| SPI2&lt;br /&gt;
| GATE[1][15], GATE[9][15]&lt;br /&gt;
| 36, 87&lt;br /&gt;
|-&lt;br /&gt;
| SPI3&lt;br /&gt;
| GATE[4][1], GATE[9][19]&lt;br /&gt;
| 54, 91&lt;br /&gt;
|-&lt;br /&gt;
| SPI4&lt;br /&gt;
| GATE[4][4], GATE[9][20]&lt;br /&gt;
| 57, 92&lt;br /&gt;
|-&lt;br /&gt;
| SWI&lt;br /&gt;
| GATE[4][2], GATE[9][21]&lt;br /&gt;
| 55, 93&lt;br /&gt;
|-&lt;br /&gt;
| TIMER0&lt;br /&gt;
| GATE[1][5], GATE[9][0]&lt;br /&gt;
| 26, 72&lt;br /&gt;
|-&lt;br /&gt;
| TIMER1&lt;br /&gt;
| GATE[1][23], GATE[9][1]&lt;br /&gt;
| 44, 73&lt;br /&gt;
|-&lt;br /&gt;
| TIMER2&lt;br /&gt;
| GATE[1][24], GATE[9][2]&lt;br /&gt;
| 45, 74&lt;br /&gt;
|-&lt;br /&gt;
| TIMER3&lt;br /&gt;
| GATE[1][25], GATE[9][3]&lt;br /&gt;
| 46, 75&lt;br /&gt;
|-&lt;br /&gt;
| TIMER4&lt;br /&gt;
| GATE[1][26], GATE[9][4]&lt;br /&gt;
| 47, 76&lt;br /&gt;
|-&lt;br /&gt;
| TIMER5&lt;br /&gt;
| GATE[1][27], GATE[9][5]&lt;br /&gt;
| 48, 77&lt;br /&gt;
|-&lt;br /&gt;
| TIMER6&lt;br /&gt;
| GATE[1][28], GATE[9][6]&lt;br /&gt;
| 49, 78&lt;br /&gt;
|-&lt;br /&gt;
| TIMER7&lt;br /&gt;
| GATE[4][5], GATE[9][22]&lt;br /&gt;
| 58, 94&lt;br /&gt;
|-&lt;br /&gt;
| TIMER8&lt;br /&gt;
| GATE[4][6], GATE[9][23]&lt;br /&gt;
| 59, 95&lt;br /&gt;
|-&lt;br /&gt;
| TVOUT&lt;br /&gt;
| GATE[0][10]&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| TW&lt;br /&gt;
| GATE[1][1]&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| UART0&lt;br /&gt;
| GATE[1][9], GATE[9][7]&lt;br /&gt;
| 30, 79&lt;br /&gt;
|-&lt;br /&gt;
| UART1&lt;br /&gt;
| GATE[1][29], GATE[9][8]&lt;br /&gt;
| 50, 80&lt;br /&gt;
|-&lt;br /&gt;
| UART2&lt;br /&gt;
| GATE[1][30], GATE[9][9]&lt;br /&gt;
| 51, 81&lt;br /&gt;
|-&lt;br /&gt;
| UART3&lt;br /&gt;
| GATE[1][31], GATE[9][10]&lt;br /&gt;
| 52, 82&lt;br /&gt;
|-&lt;br /&gt;
| UART4&lt;br /&gt;
| GATE[4][8], GATE[9][26]&lt;br /&gt;
| 61, 98&lt;br /&gt;
|-&lt;br /&gt;
| USB-OTG&lt;br /&gt;
| GATE[0][2]&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB2-PHY&lt;br /&gt;
| GATE[1][3]&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GATE[8][0]&lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
| VROM&lt;br /&gt;
| GATE[0][13]&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| XMC&lt;br /&gt;
| GATE[8][12]&lt;br /&gt;
| 62&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-nano-5th-Generation-Teardown/1157&lt;br /&gt;
Other:&lt;br /&gt;
*http://purpleskank.wikidot.com/ipod-nano-5g&lt;br /&gt;
*http://www.ubmtechinsights.com/reports-and-subscriptions/device-library/Device-Profile/?SINumber=23271&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22157</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22157"/>
		<updated>2025-06-23T04:52:40Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: change ipod names to page links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the [[Nano 3G]] and newer and the [[Classic 6G]] and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other IMG1 images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The [[Nano 2G]] also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does, however, support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device&amp;lt;ref&amp;gt;https://www.rockbox.org/irc/log-20080904#13:31:44&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 2G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1260&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1220&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1240&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 3G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1262&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;1224&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1242&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 4G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1263&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1225&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1243&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 5G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1265&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1231&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1246&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 6G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1266&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1232&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1248&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[Nano 7G]]&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1267&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1249&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| &amp;lt;code&amp;gt;124a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | [[Classic 6G]]&lt;br /&gt;
| [[Classic 6G#Initial|Initial]]&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1261&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1241&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Classic 6G#Rev A|Rev A]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1245&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Classic 6G#Rev B|Rev B]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1247&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| &amp;lt;code&amp;gt;1250&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Bootrom&amp;diff=22156</id>
		<title>Bootrom</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Bootrom&amp;diff=22156"/>
		<updated>2025-06-23T04:51:02Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: update display title to BootROM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:BootROM}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The iPod bootrom is different from the iBoot/SecureROM bootrom present on iOS-based devices. This is true even for iOS/non-iOS devices that share the same SoC, eg. the iPod touch 2G and Nano 4G (both of which are based around an S5L8720).&lt;br /&gt;
&lt;br /&gt;
The reverse engineering efforts below have been based on a ROM extract from a Nano 4G with the following SHA256 sum: 9cc05fb83024c9d51fd31c97a137447ce5ea87fe7cefba7b9aa6d54609bfbafb .&lt;br /&gt;
&lt;br /&gt;
== BootROM functionality ==&lt;br /&gt;
&lt;br /&gt;
The BootROM can perform the following actions:&lt;br /&gt;
&lt;br /&gt;
# Boot from NAND flash (via built-in flash translation layer implementation)&lt;br /&gt;
# Boot from some other unknown storage (NOR? Although NOR is not present on the N4G...)&lt;br /&gt;
# Boot from USB DFU mode.&lt;br /&gt;
&lt;br /&gt;
The mode is selected based on straps, pressed buttons and mode priorities (first NAND or &#039;NOR&#039; is performed, then DFU).&lt;br /&gt;
&lt;br /&gt;
All three boot paths end up performing the same [[IMG1|image]] verification steps:&lt;br /&gt;
&lt;br /&gt;
# Load image into memory at beginning of SRAM.&lt;br /&gt;
# Verify image header ([[IMG1]] 2.0): perform SHA1 then AES of first 0x40 bytes, compare against stored sum.&lt;br /&gt;
# Parse footer certificates and verify footer signature against body (undocumented).&lt;br /&gt;
# Decrypt and jump into body.&lt;br /&gt;
&lt;br /&gt;
== Certificate parsing ==&lt;br /&gt;
&lt;br /&gt;
The certificate parsing code is subject to [[Pwnage 2.0]]. This is one of the few codebases shared with iBoot/SecureROM, and is why the bug was portable to the Nano bootroms.&lt;br /&gt;
&lt;br /&gt;
== DFU mode ==&lt;br /&gt;
&lt;br /&gt;
The DFU mode codebase seems to be different from the iBoot/SecureROM codebase, with very little code shared (perhaps apart from low-level DesignWare HS OTG register access code). There are no iBoot-like tasks present, the heap is very minimalistic (bitmap based, so no unlink/house of $x heap attacks), and the entire data transfer is effectively performed in poll/synchronous mode (with all transfers initiated via USB DMA directly into temporary receive buffers).&lt;br /&gt;
&lt;br /&gt;
The difference between the Nano and SecureROM bootrom codebases seem to be the main cause of none of the SecureROM USB exploits working (steaks4uce, usb_control_msg(0xa1, 1), checkm8, etc. However, a full pass over the USB codepaths is still yet to be performed, other vulnerabilities are likely to exist.&lt;br /&gt;
&lt;br /&gt;
The USB codebase of the DFU is where the [[WInd3x|wInd3x]] bug lives.&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_4G&amp;diff=22155</id>
		<title>Nano 4G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_4G&amp;diff=22155"/>
		<updated>2025-06-23T04:50:27Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (4th generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_4g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_4g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8720&lt;br /&gt;
| 339S0049 ARM, K4X56323PI-KGC4, YWE025QH 825, APL0278A00, N1B2HOP 0831&lt;br /&gt;
| ARM1176JZF-S processor. It is definitely worth knowing that this is the exact same processor used in the iTouch 2G. This could mean that some of the same exploits for that could possibly be used. [http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware) Here] is a very interesting page about the S5L8720 processor.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 32MB, probably MDDR. Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/stonline/products/literature/ds/12726.pdf LIS302DL]&lt;br /&gt;
| 33DL, 2827&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| TH58NVG6D1DLA87, U20516, JAPAN, 0826MAE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf CS42L58]&lt;br /&gt;
| 338S055C, 189N0824, SGP&lt;br /&gt;
| I determined this because the [[Nano 5G]] has a similar chip, which we are sure of the identity. One person lifted this chip and found that the pins connect to the LCD connector. Not much info was given, and it could just be a common ground, but the identity of this chip is still up in the air.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| Dialog D1759&lt;br /&gt;
| 338S0687-AC, 08288HBB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bootrom ==&lt;br /&gt;
&lt;br /&gt;
See [[S5L8720 Bootrom]]. Different from the S5L8720 bootrom used in the iPod Touch 2G (which is iBoot-based, a.k.a. SecureROM).&lt;br /&gt;
&lt;br /&gt;
== Memory Map ==&lt;br /&gt;
&lt;br /&gt;
See [https://www.theiphonewiki.com/wiki/S5L8720_(Hardware)] and [https://code.google.com/archive/p/chronicdev/wikis/N72APDevTree.wiki].&lt;br /&gt;
&lt;br /&gt;
In addition to the above, a few extra memory regions have been found while reverse engineering the [[S5L8720 Bootrom]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Mystery DMA&lt;br /&gt;
| 0x3880_0000&lt;br /&gt;
| A PL080-like DMA engine, but with slightly different MMIO register structure. Used by the [[S5L8720 Bootrom|bootrom]] to copy the DFU payload from 0x2200_0600 to 0x2200_0000 after decryption and verification. Or maybe that&#039;s actually doing the decryption? To be investigated.&lt;br /&gt;
|-&lt;br /&gt;
| Mystery Interrupt Thing&lt;br /&gt;
| 0x39a0_0000&lt;br /&gt;
| Not the VICs (0x38e0_0000, 0x38e0_1000), not the EdgeIC (0x38e0_2000). Seems to hold 7 different 32-bit registers for interrupt status at 0xa0, and 7 different 32-bit registers for interrupt mask at 0xc0. The 7 different registers correspond to 7 &#039;modes&#039; of ISRs set up in the bootrom. Not much is known about what it does, and what these &#039;modes&#039; are. To be investigated.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reverse Engineering Results==&lt;br /&gt;
Timers: These clockgates have been found to be related to timers: 37, 55, 56, 57, 58, 59, 60, 69, 70, 128, 129, 130, 131, 132, 133, 134, 150 and 151.&lt;br /&gt;
&lt;br /&gt;
==Status registers==&lt;br /&gt;
We dumped all c0 coprocessor registers:&lt;br /&gt;
&lt;br /&gt;
===c0,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x410FB764&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM1176 rev. 4&lt;br /&gt;
===c0,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x1D152152&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; DCache/ICache 16KB each, 4 way associative, 32 bytes line size&lt;br /&gt;
===c0,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No TCM&lt;br /&gt;
===c0,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000800&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Unified TLB, 8 lockable entries&lt;br /&gt;
===c1,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM/Thumb1/Jazelle support, no Thumb2 support&lt;br /&gt;
===c1,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Trustzone v1&lt;br /&gt;
===c1,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000033&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports debug model v6.1, both applications processor and secure&lt;br /&gt;
===c1,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No auxiliary features&lt;br /&gt;
===c1,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01130003&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; FCSE, Auxiliary Control register, ARMv6 TCM/DMA, no DMA cache coherency, no multicore cache coherency, VMSA v7&lt;br /&gt;
===c1,c5===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x10030302&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Branch target buffer, Harvard architecture, various cache operations supported (see TRM)&lt;br /&gt;
===c1,c6===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01222100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; WFI, Data synchronization barrier, Prefetch flush, Data memory barrier, various TLB/cache operations supported (see TRM), no prefetch cache range operation&lt;br /&gt;
&lt;br /&gt;
===c1,c7===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No hierarchical cache maintenance support&lt;br /&gt;
===c2,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00140011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BKPT, CDP, CDP2, LDC, LDC2, MCD, MCD2, MRC, MRC2, STC, STC2, MCRR, MCRR2, MRRC, MRRC2, CLZ, SWP and SWPB, doesn&#039;t support division, combined compare and branch or bitfield instructions&lt;br /&gt;
===c2,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x12002111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BXJ, BX, BLX, PC loads have BX behavior, supports SXTB, SXTAB, SXTB16, SXTAB16, SXTH, SXTAH, UXTB, &lt;br /&gt;
UXTAB, UXTB16, UXTAB16, UXTH, UXTAH, SRS, RFE, CPS, LDM(2), LDM(3), STM(2) and SETEND&lt;br /&gt;
===c2,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x11231121&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports REV, REV16, REVSH, MRS, MSR, UMULL, UMLAL, UMAAL, SMULL, SMLAL, SMLABB, SMLABT, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB, SMLAWT, SMULBB, SMULBT, SMULTB, SMULTT, SMULWB, SMULWT, SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR, SMMUL, SMMULR, SMUAD, SMUADX, SMUSD, SMUSDX, MLA, restartable LDM/STM, PLD, LDRD, STRD and Q bit in PSRs&lt;br /&gt;
===c2,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01102131&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports true NOP, Thumb MOV(3)/CPU, LDREX, STREX, LDREXB, LDREXH, LDREXD, STREXB, STREXH, STREXD, CLREX, SVC, PKHBT, PKHTB, QADD16, QADD8, QADDSUBX, QSUB16, QSUB8, QSUBADDX, SADD16, SADD8, SADDSUBX, SEL, SHADD16, SHADD8, SHADDSUBX, SHSUB16, SHSUB8, SHSUBADDX, SSAT, SSAT16, SSUB16, SSUB8, SSUBADDX, SXTAB16, SXTB16, UADD16, UADD8, UADDSUBX, UHADD16, UHADD8, UHADDSUBX, UHSUB16, UHSUB8, UHSUBADDX, UQADD16, UQADD8, UQADDSUBX, UQSUB16, UQSUB8, UQSUBADDX, USAD8, USADA8, USAT, USAT16, USUB16, USUB8, USUBADDX, UXTAB16, UXTB16, QADD, QDADD, QDSUB, QSUB, and the Q and GE[3:0] bits in the PSRs. Does nut support branch table and Thumb2 instructions.&lt;br /&gt;
===c2,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00001141&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports SMC, writeback instructions, shift of loads and stores by 0-3 bits to the left, constant shift options, register controlled shift options, LDRBT, LDRT, STRBT and STRT. No barrier instructions support.&lt;br /&gt;
===c2,c5===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No additional implementation defined instruction set extensions&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
Other:&lt;br /&gt;
*http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22154</id>
		<title>Nano 3G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22154"/>
		<updated>2025-06-23T04:49:57Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: oops fix images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (3rd generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_3g_frt_a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_3g_bck_a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
| 337S3473 8702, NONBWOEC, 0731 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI] or Qimonda HYE18M169CX75&lt;br /&gt;
| 0728, C, HYE18M256, 169CX75, W3338092&lt;br /&gt;
| SDRAM - Mobile DDR, 256Mb, 1.8V. WORK ON THIS: Like the flash chip, the memory also varies. The most popular chip seems to be the [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]. Another similar one that is sometimes used is the Qimonda HYE18M169CX75&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
| V80B, 729379&lt;br /&gt;
| Flash - NOR, 8Mb, Serial SPI&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| Samsung 728, K9HCG08U5M, PCB0, FCF285X1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Audio codec&lt;br /&gt;
| WM1870&lt;br /&gt;
| APPLE, 338S0462, 76BZKTM&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1671B&lt;br /&gt;
| 338S0408, 07258HAH&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SPI NOR Test Pads ==&lt;br /&gt;
&lt;br /&gt;
Test pads are available on the back of the board to access SCK, MISO and CS between the SoC and the NOR utility flash. MOSI is also present, but is buried in an internal layer (second from back) which can be  accessed by carefully scraping off the top FR4 using a sharp tool, or by using a tiny carbide bit on a milling machine.&lt;br /&gt;
&lt;br /&gt;
[[Image:N3g-spi-nor.png|500px]]&lt;br /&gt;
[[Image:N3g-spi-nor-zoom.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Notes ==&lt;br /&gt;
=== CPU ===&lt;br /&gt;
The Apple S5L8702 is an ARM926EJ-S processor designed by Samsung. It is estimated to run at 100MHz (I read this somewhere but I don&#039;t remember where). The basics of the chip are similar to the S5L8700x for which there is [[S5L8700 datasheet|a leaked datasheet]]. For some peripherals, merely a base address has changed. For others, full subsystems have been updated and refined. &lt;br /&gt;
&lt;br /&gt;
=== GPU ===&lt;br /&gt;
Very little is known about the GPU core other than the fact that it almost certainly exists. It&#039;s likely a single PowerVR GPU core that can maybe can decode H.264 content up to 480p (or perhaps there&#039;s another peripheral responsible for this?). It&#039;s also possible that the GPU is responsible for rendering games, since it appears the games use some form of OpenGL ES. CoverFlow also probably leverages the GPU.&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
The S5L8702 has several I2C busses (two, probably?), but possibly only one is used (bus #0). On this bus, there are currently two known slaves:&lt;br /&gt;
* The PMU at address 0x73&lt;br /&gt;
* The DAC at address 0x1A&lt;br /&gt;
The bus runs at 1.8V with a clock of 333.33KHz.&lt;br /&gt;
&lt;br /&gt;
Other notes about the I2C peripheral from Rockbox:&lt;br /&gt;
* s5l8702 I2C controller is similar to s5l8700, known differences are:&lt;br /&gt;
** IICCON[5] is not used in s5l8702.&lt;br /&gt;
** IICCON[13:8] are used to enable interrupts.&lt;br /&gt;
** IICSTA2[13:8] are used to read the status and write-clear interrupts.&lt;br /&gt;
* Known interrupts:&lt;br /&gt;
** [13] STOP on bus (TBC)&lt;br /&gt;
** [12] START on bus (TBC)&lt;br /&gt;
** [8] byte transmitted or received in Master mode (not tested in Slave)&lt;br /&gt;
** IICCON[4] does not clear interrupts, it is enabled when a byte is transmited or received, in Master mode the tx/rx of the next byte starts when it is written as &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Digital Audio Subsystem (I2S) ===&lt;br /&gt;
The iPod n3g uses a Wolfson DAC (WM1870) to convert digital audio to analog audio. The S5L8702 sends digital audio in the form of I2S data at 44.1kHz with 16-bit resolution. Even if there is no audio playing, at some point during boot up, the I2S peripheral is turned on, meaning the Bit Clock and Word Select are always on. During the 1kHz tone test in the diagnostic menu, the I2S mode is different, possibly a half-data mode since the test tone is one channel.&lt;br /&gt;
The S5L8702 seems to support 3 I2S interfaces, but only one is used for audio playback. It&#039;s possible another one is used for microphone recording (when an Apple headset with a microphone is plugged in, you can record voice memos) but this is unconfirmed.&lt;br /&gt;
&lt;br /&gt;
The S5L8702 sends data to the DAC at full volume no matter what. Volume is configured via I2C bus #0. As far as I can tell, two commands are issued to change the volume:&lt;br /&gt;
 Address 0x1A, Data 0x04 &amp;lt;volume&amp;gt;&lt;br /&gt;
 Address 0x1A, Data 0x07 &amp;lt;volume&amp;gt;&lt;br /&gt;
Where &amp;lt;volume&amp;gt; is a number between 0xB7 for quietest to 0xF5 for loudest. It&#039;s also possible that a special value of 0x80 is for full mute, but this is unconfirmed. It&#039;s also unclear what the 0x04 and 0x07 mean, perhaps it&#039;s capable of changing the volume of both channels independently?&lt;br /&gt;
&lt;br /&gt;
Both the I2C and I2S busses run at 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== NAND ===&lt;br /&gt;
NAND hardware is an enigma. There has been a rather substantial effort on this subsystem alone. Most of that is documented [https://github.com/lemonjesus/S5L8702-FMISS-Tools here].&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses:&lt;br /&gt;
*http://www2.electronicproducts.com/Applie_iPod_Nano_(4GB)_3rd_Generation-whatsinside-16.aspx#&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://content.techrepublic.com.com/2346-13636_11-170826-1.html&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-3rd-Generation/594/1&lt;br /&gt;
*http://insidetronics.blogspot.com/2007/09/teardown-ipod-nano-3g.html&lt;br /&gt;
*[http://www.combert-elec.com/www/bookpic/200810916515460624.jpg Image of 3G Nano board]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22153</id>
		<title>Nano 3G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22153"/>
		<updated>2025-06-23T04:49:05Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (3rd generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_3g_frt_a.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_3g_bck_a.jpg|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
| 337S3473 8702, NONBWOEC, 0731 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI] or Qimonda HYE18M169CX75&lt;br /&gt;
| 0728, C, HYE18M256, 169CX75, W3338092&lt;br /&gt;
| SDRAM - Mobile DDR, 256Mb, 1.8V. WORK ON THIS: Like the flash chip, the memory also varies. The most popular chip seems to be the [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]. Another similar one that is sometimes used is the Qimonda HYE18M169CX75&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
| V80B, 729379&lt;br /&gt;
| Flash - NOR, 8Mb, Serial SPI&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| Samsung 728, K9HCG08U5M, PCB0, FCF285X1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Audio codec&lt;br /&gt;
| WM1870&lt;br /&gt;
| APPLE, 338S0462, 76BZKTM&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1671B&lt;br /&gt;
| 338S0408, 07258HAH&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SPI NOR Test Pads ==&lt;br /&gt;
&lt;br /&gt;
Test pads are available on the back of the board to access SCK, MISO and CS between the SoC and the NOR utility flash. MOSI is also present, but is buried in an internal layer (second from back) which can be  accessed by carefully scraping off the top FR4 using a sharp tool, or by using a tiny carbide bit on a milling machine.&lt;br /&gt;
&lt;br /&gt;
[[Image:N3g-spi-nor.png|500px]]&lt;br /&gt;
[[Image:N3g-spi-nor-zoom.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Notes ==&lt;br /&gt;
=== CPU ===&lt;br /&gt;
The Apple S5L8702 is an ARM926EJ-S processor designed by Samsung. It is estimated to run at 100MHz (I read this somewhere but I don&#039;t remember where). The basics of the chip are similar to the S5L8700x for which there is [[S5L8700 datasheet|a leaked datasheet]]. For some peripherals, merely a base address has changed. For others, full subsystems have been updated and refined. &lt;br /&gt;
&lt;br /&gt;
=== GPU ===&lt;br /&gt;
Very little is known about the GPU core other than the fact that it almost certainly exists. It&#039;s likely a single PowerVR GPU core that can maybe can decode H.264 content up to 480p (or perhaps there&#039;s another peripheral responsible for this?). It&#039;s also possible that the GPU is responsible for rendering games, since it appears the games use some form of OpenGL ES. CoverFlow also probably leverages the GPU.&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
The S5L8702 has several I2C busses (two, probably?), but possibly only one is used (bus #0). On this bus, there are currently two known slaves:&lt;br /&gt;
* The PMU at address 0x73&lt;br /&gt;
* The DAC at address 0x1A&lt;br /&gt;
The bus runs at 1.8V with a clock of 333.33KHz.&lt;br /&gt;
&lt;br /&gt;
Other notes about the I2C peripheral from Rockbox:&lt;br /&gt;
* s5l8702 I2C controller is similar to s5l8700, known differences are:&lt;br /&gt;
** IICCON[5] is not used in s5l8702.&lt;br /&gt;
** IICCON[13:8] are used to enable interrupts.&lt;br /&gt;
** IICSTA2[13:8] are used to read the status and write-clear interrupts.&lt;br /&gt;
* Known interrupts:&lt;br /&gt;
** [13] STOP on bus (TBC)&lt;br /&gt;
** [12] START on bus (TBC)&lt;br /&gt;
** [8] byte transmitted or received in Master mode (not tested in Slave)&lt;br /&gt;
** IICCON[4] does not clear interrupts, it is enabled when a byte is transmited or received, in Master mode the tx/rx of the next byte starts when it is written as &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Digital Audio Subsystem (I2S) ===&lt;br /&gt;
The iPod n3g uses a Wolfson DAC (WM1870) to convert digital audio to analog audio. The S5L8702 sends digital audio in the form of I2S data at 44.1kHz with 16-bit resolution. Even if there is no audio playing, at some point during boot up, the I2S peripheral is turned on, meaning the Bit Clock and Word Select are always on. During the 1kHz tone test in the diagnostic menu, the I2S mode is different, possibly a half-data mode since the test tone is one channel.&lt;br /&gt;
The S5L8702 seems to support 3 I2S interfaces, but only one is used for audio playback. It&#039;s possible another one is used for microphone recording (when an Apple headset with a microphone is plugged in, you can record voice memos) but this is unconfirmed.&lt;br /&gt;
&lt;br /&gt;
The S5L8702 sends data to the DAC at full volume no matter what. Volume is configured via I2C bus #0. As far as I can tell, two commands are issued to change the volume:&lt;br /&gt;
 Address 0x1A, Data 0x04 &amp;lt;volume&amp;gt;&lt;br /&gt;
 Address 0x1A, Data 0x07 &amp;lt;volume&amp;gt;&lt;br /&gt;
Where &amp;lt;volume&amp;gt; is a number between 0xB7 for quietest to 0xF5 for loudest. It&#039;s also possible that a special value of 0x80 is for full mute, but this is unconfirmed. It&#039;s also unclear what the 0x04 and 0x07 mean, perhaps it&#039;s capable of changing the volume of both channels independently?&lt;br /&gt;
&lt;br /&gt;
Both the I2C and I2S busses run at 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== NAND ===&lt;br /&gt;
NAND hardware is an enigma. There has been a rather substantial effort on this subsystem alone. Most of that is documented [https://github.com/lemonjesus/S5L8702-FMISS-Tools here].&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses:&lt;br /&gt;
*http://www2.electronicproducts.com/Applie_iPod_Nano_(4GB)_3rd_Generation-whatsinside-16.aspx#&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://content.techrepublic.com.com/2346-13636_11-170826-1.html&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-3rd-Generation/594/1&lt;br /&gt;
*http://insidetronics.blogspot.com/2007/09/teardown-ipod-nano-3g.html&lt;br /&gt;
*[http://www.combert-elec.com/www/bookpic/200810916515460624.jpg Image of 3G Nano board]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_2G&amp;diff=22152</id>
		<title>Nano 2G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_2G&amp;diff=22152"/>
		<updated>2025-06-23T04:48:48Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: move images to components section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (2nd generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:nano_2g_frt_a.jpg|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:nano_2g_bck_a.jpg|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8701&lt;br /&gt;
|337S32918701, N042DQS, 0636 ARM&lt;br /&gt;
| System On Chip (SoC), includes ARM940T central processor, advanced DSP, 50kB boot ROM, 176kB SRAM, external RAM, flash and LCD controllers, USB(1.1-host; 2.0-function) and some other parts. Package: [http://www.samsung.com/global/business/semiconductor/support/PackageInformation/downloads/SystemLSI/FBGA/232_FBGA_1010_12_05.pdf 232-pin FBGA 10x10mm] or 224/226-pin 9x9mm. Similar chips: [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&amp;amp;partnum=SA58700 SA58700X07].  Some documentation available for the S5L series can be found [[S5L8700 datasheet|here]]. The processor itself is Apple-branded and marked 337S3291 8701.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG Samsung K4M56163PG]&lt;br /&gt;
|SEC 637 GG75, K4M56163PG, AQH373P1&lt;br /&gt;
| [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here] is the datasheet. This is the same chip used in the [[Nano 1G]]. Sometimes the Qimonda [http://www.alldatasheet.com/datasheet-pdf/pdf/207179/QIMONDA/HYE18L256169BFX-7.5.html HYE18L256] chip is used instead.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41422 SST39WF800A]&lt;br /&gt;
|SST39WF800A, 90-4C-C2QE, 0631287-A&lt;br /&gt;
| stores Disk Mode, Diagnostic Mode and the code to flash this chip. Tof has [http://home.gna.org/linux4nano/dumping_SST39WF800A.html managed to extract] this data and the dump can be obtained by emailing Emmanuel Fleury. All of the contents in the utility flash chip are encrypted from now on.&lt;br /&gt;
|-&lt;br /&gt;
| N/A&lt;br /&gt;
| DSP&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Doesn&#039;t seem to be present at all.&lt;br /&gt;
|-&lt;br /&gt;
| B1&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
|TOSHIBA P11023, JAPAN 0636 KAE, TP0560, TH58NVG5D4CTG20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|Linear Technology, 6H, 4066, B8966&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Wolfson WM8975&lt;br /&gt;
|APPLE, 338S0310, 68BTST8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Step down regulator&lt;br /&gt;
| LM34910&lt;br /&gt;
|National Semiconductor, JM66RJ, L34910B&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| B2&lt;br /&gt;
| Power manager (below)&lt;br /&gt;
| NXP PCF50633UM&lt;br /&gt;
|APPLE, 338S0261, P29T6 04, cPG0637Y, 01/N2&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-2nd-Generation/592/1&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2006/09/ipod-2g.ars/4&lt;br /&gt;
*http://www.eetimes.com/design/audio-design/4016200/Tear-Down-Inside-the-Apple-8GB-iPod-nano (useful because it shows the power manager)&lt;br /&gt;
*http://forums.rockbox.org/index.php?PHPSESSID=d69e900c3215a165adee7165ece4eccb&amp;amp;topic=6518.msg62700#msg62700 (beautiful PCB scans)&lt;br /&gt;
Other:&lt;br /&gt;
*http://home.gna.org/linux4nano/download/hardware_synth-1.0.pdf&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22151</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22151"/>
		<updated>2025-06-22T01:21:45Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: update usb PID model links/names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does, however, support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device&amp;lt;ref&amp;gt;https://www.rockbox.org/irc/log-20080904#13:31:44&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 2G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1260&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1220&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1240&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 3G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1262&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;1224&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1242&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 4G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1263&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1225&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1243&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 5G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1265&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1231&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1246&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 6G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1266&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1232&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1248&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[Nano 7G]]&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1267&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1249&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| &amp;lt;code&amp;gt;124a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | [[Classic 6G]]&lt;br /&gt;
| [[Classic 6G#Initial|Initial]]&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1261&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1241&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Classic 6G#Rev A|Rev A]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1245&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Classic 6G#Rev B|Rev B]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1247&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| &amp;lt;code&amp;gt;1250&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22150</id>
		<title>Classic 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22150"/>
		<updated>2025-06-22T01:07:35Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: fix factual inaccuracy in intro text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod classic (6th generation)}}&lt;br /&gt;
This page concerns the mainline iPods branded with the &amp;quot;classic&amp;quot; name. These iPods mark the switch from PortalPlayer to Samsung processors and were the last mainline iPods ever released. Four versions of this iPod exist, all branded with &amp;quot;classic&amp;quot;: the [[#Initial|initial version]], released in 2007, a thinner [[#Rev A|Rev A]], released in 2008, [[#Rev B|Rev B]] released in 2009 and a final Rev C revision not documented here. These revisions are sometimes called the 6th, 6.5th, 7th, and 7.5th generation respectively.&lt;br /&gt;
&lt;br /&gt;
==Initial==&lt;br /&gt;
[[Image:classic_1g_frt_a.png|500px]]&lt;br /&gt;
[[Image:classic_1g_bck_a.png|500px]]&lt;br /&gt;
===Terminology===&lt;br /&gt;
This is the first version of the 6th generation &amp;quot;classic&amp;quot; branded iPod. It was available in an 80GB and 160GB model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
|&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE, 338S0394, A1GIO736, MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE, 338S0445, 2114.102, ZPD7383Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*TheSeven&#039;s broken Classic 1G board (High-res): [http://img43.imageshack.us/img43/6619/6gback.jpg front] [http://img7.imageshack.us/img7/1858/6gfront.jpg back]&lt;br /&gt;
Other:&lt;br /&gt;
*http://homepage.mac.com/marc.heijligers/audio/ipod/comparison/measurements/measurements.html&lt;br /&gt;
&lt;br /&gt;
==Rev A==&lt;br /&gt;
[[Image:classic_2g_frt_a.jpg|500px]]&lt;br /&gt;
[[Image:classic_2g_bck_a.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Terminology===&lt;br /&gt;
This is a revised version of the 6th generation iPod with the &amp;quot;classic&amp;quot; name. It is thinner than the 160GB [[#Initial||initial revision]] and was only available with 120GB storage.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
Almost exactly the same hardware as the [[#Initial]], except that region A is populated. This presumably communicates with the new headphone/remote that Apple chose for this device to support.&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.chinaveboss.com/faq_info.html?faqs_id=53&amp;amp;fcPath=1&amp;amp;zenid=19755464b2fde0cb4f7a8877cfa6649c&lt;br /&gt;
&lt;br /&gt;
==Rev B==&lt;br /&gt;
[[Image:Front_3g.jpg|500px]]&lt;br /&gt;
[[Image:Back_3g.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
iPod classic MC293, 160GB, silver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No better teardown pictures of this revision have been found or made by us yet. There is, however, [http://www.ilounge.com/index.php/news/comments/ipod-classic-160gb-changes-new-firmware-engraving/ a basic guide of the non-electronic differences] by iLounge. Since the model number is the same as [[#Rev A|Rev A]], there probably aren&#039;t any worthwhile (if any) in the hardware.&lt;br /&gt;
&lt;br /&gt;
===Terminology===&lt;br /&gt;
Rev B is a re-introduced 160GB revision of the classic, announced on September 9, 2009. It is the same size as the [[#Rev A|Rev A]] model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| [https://freemyipod.org/wiki/S5L8702 Samsung S5L8702]&lt;br /&gt;
|337S3526 8702 N26P9U4 1011 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE 338S0394 AICK0952 MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE 338S0445 78030 82 D780113&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|4066T 84453&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic&amp;diff=22148</id>
		<title>Classic</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic&amp;diff=22148"/>
		<updated>2025-06-21T19:45:28Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: create redirect to classic 6g&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Classic 6G]]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=22147</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=22147"/>
		<updated>2025-06-21T19:44:55Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: remove multiple classic revisions from hardware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:EmCORE_Nano2G_Nano4G_Classic.jpg|280px|thumb|right|[[emCORE]] r779 on [[Nano 2G]], [[Nano 4G]] and [[Classic 2G]]]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project aimed at reverse-engineering non-iOS iPods (all models other than the Touch) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox] or Linux. Freemyipod is a relaunch of [[Linux4nano]].&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (2nd generation), iPod classic or older iPods? ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s an upstream Rockbox port for these devices. Go use that.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (3rd generation) or newer? ===&lt;br /&gt;
&lt;br /&gt;
Not much (yet) unless you&#039;re an embedded developer :).&lt;br /&gt;
&lt;br /&gt;
On the 3rd, 4th and 5th generation, we have a stable tethered exploit ([[wInd3x]]) which allows early, untethered and safe (no permanent modification) code execution. This in turn allows you to run [[U-Boot]] and an early [[Linux|Linux port]] or experiment with reverse-engineering/modifying the original firmware, [[retailOS]].&lt;br /&gt;
&lt;br /&gt;
On the 6th and 7th generation, a font parsing vulnerability (CVE-2010-1797) can be exploited with [[ipod_sun]].&lt;br /&gt;
&lt;br /&gt;
On the 7th generation (and possibly 6th generation), a vulnerability in DFU_DNLOAD packet parsing code can be exploited with [[S5Late]].&lt;br /&gt;
&lt;br /&gt;
There&#039;s a set of earlier tooling ([[emCORE]]/[[emBIOS]]/[[iBugger]]) which was exploiting other vulnerabilities and was a lead-up to a port of Rockbox, but it&#039;s mostly abandoned.&lt;br /&gt;
&lt;br /&gt;
== Getting an account ==&lt;br /&gt;
Due to spambots, registration is closed. For an account contact [[User:User890104|User890104]] or [[User:Q3k|q3k]].&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2025-06-12}} - Some of us will be at GPN23 in Karlsruhe! [https://entropia.de/GPN23 More info here]. Let us know on IRC/Discord/Matrix if you&#039;re also there!&lt;br /&gt;
* {{#dateformat:2024-12-25}} - Some of us will be at 38C3 in Hamburg! [https://events.ccc.de/congress/2024/hub/en/project/ipod-nano-hacking-freemyipod/ Come say hi!]&lt;br /&gt;
* {{#dateformat:2024-12-16}} - [[S5Late]], a tethered iPod bootrom/DFU exploit for Nano 7G (and possibly Nano 6G), is released.&lt;br /&gt;
* {{#dateformat:2023-12-28}} - [[ipod_sun]], a tool that enables code execution on the iPod nano 6th and 7th generation, is released.&lt;br /&gt;
* {{#dateformat:2023-01-07}} - [https://social.hackerspace.pl/@q3k/109655916469636189 A preliminary U-Boot port to the Nano 5G has been developed.]&lt;br /&gt;
* {{#dateformat:2022-01-04}} - The bootrom of iPod Nano 5G was successfully dumped, and is in the process of being reverse-engineered!&lt;br /&gt;
* {{#dateformat:2021-12-31}} - An exploit named wInd3x, which exploits the latest vulnerability, is being prepared for Nano 4G and Nano 5G.&lt;br /&gt;
* {{#dateformat:2021-12-27}} - A new vulnerability was discovered in iPod Nano 4G and Nano 5G bootrom, which allows arbitrary code execution!&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* {{#dateformat:2018-08-25}} - The website software has been updated to MediaWiki 1.31 after about 2 months of downtime.&lt;br /&gt;
* {{#dateformat:2016-06-17}} - The freemyipod project is becoming deprecated, as parts of the code is slowly being integrated in Rockbox. It is likely that no future development on the freemyipod project will take place. Essential parts of emCORE helped building a Rockbox bootloader for iPod Classic, and any future development will take place in the Rockbox project.&lt;br /&gt;
* {{#dateformat:2014-03-26}} - A bug that prevented [[emCORE]] installations on certain Windows configurations (getting stuck on &amp;quot;Booting UBI file...&amp;quot;), has been finally fixed! If the installation has failed for you before, you can retry it using the updated version of our tool (use the iTunes method for now).&lt;br /&gt;
* {{#dateformat:2012-01-02}} - There have been some problems with the latest release. A hotfix release ([[EmCORE_Releases/r859|r859]]) has been published to fix some of these problems. iPod nano 2g users are advised to upgrade.  See the [[EmCORE_Releases/r859|release details page]] for more information.&lt;br /&gt;
* {{#dateformat:2012-01-01}} - A new release &amp;lt;s&amp;gt;([[EmCORE_Releases/r855|r855]])&amp;lt;/s&amp;gt; is out! It includes a couple of new features, several bugfixes and a new bootmenu theme! More information on the &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|release details page]]&amp;lt;/s&amp;gt;.&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
* {{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}} - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
* {{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
* {{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
* {{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
* {{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information. Check our [[ Special:Code/freemyipod|SVN activity ]] page for the latest changes to our source code.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[ipod_sun]]&lt;br /&gt;
* [[U-Boot|U-Boot port]]&lt;br /&gt;
* [[Linux|Linux port]]&lt;br /&gt;
* Legacy:&lt;br /&gt;
** [[iBugger]]&lt;br /&gt;
** [[iLoader]]&lt;br /&gt;
** [[emCORE]]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
** [[Bootrom]]&lt;br /&gt;
** [[Boot Process]]&lt;br /&gt;
** [[Firmware decryption]]&lt;br /&gt;
** [[FTL|Flash Translation Layer]]&lt;br /&gt;
** [[RetailOS]]&lt;br /&gt;
*** [[RetailOS Options]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G HW analysis]]&lt;br /&gt;
** [[S5L8701 analysis]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
* Nano 5G&lt;br /&gt;
** [[Nano 5G|General]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
*** [[920-0614-03]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Nano 7G]]&lt;br /&gt;
** [[Classic 6G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_1G&amp;diff=22146</id>
		<title>Classic 1G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_1G&amp;diff=22146"/>
		<updated>2025-06-21T19:43:39Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: redirect to new merged page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Classic 6G#Initial]]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_2G&amp;diff=22145</id>
		<title>Classic 2G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_2G&amp;diff=22145"/>
		<updated>2025-06-21T19:43:27Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: redirect to new merged page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Classic 6G#Rev A]]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_3G&amp;diff=22144</id>
		<title>Classic 3G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_3G&amp;diff=22144"/>
		<updated>2025-06-21T19:42:53Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: redirect to new merged page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Classic 6G#Rev B]]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22143</id>
		<title>Classic 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Classic_6G&amp;diff=22143"/>
		<updated>2025-06-21T19:41:56Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: create merged iPod classic page from Classic 1G, Classic 2G, Classic 3G&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod classic (6th generation)}}&lt;br /&gt;
This page concerns the mainline iPods branded with the &amp;quot;classic&amp;quot; name. These iPods mark the switch from PortalPlayer to Samsung processors and were the last mainline iPods ever released. Four versions of this iPod exist, all branded with &amp;quot;classic&amp;quot;: the [[#Initial|initial version]], released in 2007, [[#Rev A|Rev A]], released in 2008, a thinner [[#Rev B|Rev B]] released in 2009 and a final Rev C revision not documented here. These revisions are sometimes called the 6th, 6.5th, 7th, and 7.5th generation respectively.&lt;br /&gt;
&lt;br /&gt;
==Initial==&lt;br /&gt;
[[Image:classic_1g_frt_a.png|500px]]&lt;br /&gt;
[[Image:classic_1g_bck_a.png|500px]]&lt;br /&gt;
===Terminology===&lt;br /&gt;
This is the first version of the 6th generation &amp;quot;classic&amp;quot; branded iPod. It was available in an 80GB and 160GB model.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
|&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE, 338S0394, A1GIO736, MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE, 338S0445, 2114.102, ZPD7383Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*TheSeven&#039;s broken Classic 1G board (High-res): [http://img43.imageshack.us/img43/6619/6gback.jpg front] [http://img7.imageshack.us/img7/1858/6gfront.jpg back]&lt;br /&gt;
Other:&lt;br /&gt;
*http://homepage.mac.com/marc.heijligers/audio/ipod/comparison/measurements/measurements.html&lt;br /&gt;
&lt;br /&gt;
==Rev A==&lt;br /&gt;
[[Image:classic_2g_frt_a.jpg|500px]]&lt;br /&gt;
[[Image:classic_2g_bck_a.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Terminology===&lt;br /&gt;
This is a revised version of the 6th generation iPod with the &amp;quot;classic&amp;quot; name. It is thinner than the 160GB [[#Initial||initial revision]] and was only available with 120GB storage.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
Almost exactly the same hardware as the [[#Initial]], except that region A is populated. This presumably communicates with the new headphone/remote that Apple chose for this device to support.&lt;br /&gt;
===Helpful pages===&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.chinaveboss.com/faq_info.html?faqs_id=53&amp;amp;fcPath=1&amp;amp;zenid=19755464b2fde0cb4f7a8877cfa6649c&lt;br /&gt;
&lt;br /&gt;
==Rev B==&lt;br /&gt;
[[Image:Front_3g.jpg|500px]]&lt;br /&gt;
[[Image:Back_3g.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
iPod classic MC293, 160GB, silver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No better teardown pictures of this revision have been found or made by us yet. There is, however, [http://www.ilounge.com/index.php/news/comments/ipod-classic-160gb-changes-new-firmware-engraving/ a basic guide of the non-electronic differences] by iLounge. Since the model number is the same as [[#Rev A|Rev A]], there probably aren&#039;t any worthwhile (if any) in the hardware.&lt;br /&gt;
&lt;br /&gt;
===Terminology===&lt;br /&gt;
Rev B is a re-introduced 160GB revision of the classic, announced on September 9, 2009. It is the same size as the [[#Rev A|Rev A]] model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| CPU&lt;br /&gt;
| [https://freemyipod.org/wiki/S5L8702 Samsung S5L8702]&lt;br /&gt;
|337S3526 8702 N26P9U4 1011 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702. Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| K4X51163PE&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|&lt;br /&gt;
| Same as on the Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf Cirrus Logic CS42L55]&lt;br /&gt;
| APPLE 338S0394 AICK0952 MAL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| NXP PCF50635&lt;br /&gt;
| APPLE 338S0445 78030 82 D780113&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|4066T 84453&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_1G&amp;diff=22142</id>
		<title>Nano 1G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_1G&amp;diff=22142"/>
		<updated>2025-06-21T19:20:16Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: update pcb images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (1st generation)}}&lt;br /&gt;
==Components==&lt;br /&gt;
[[File:Nano 1g frt a.png|500px|thumb|none|Front of the circuit board]]&lt;br /&gt;
[[File:Nano 1g bck a.png|500px|thumb|none|Back of the circuit board]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| CPU&lt;br /&gt;
| Portal Player PP5021C-TDF&lt;br /&gt;
| PP5021C-TDF, L9A0633, U0530 Logo, WYH30113.1, TAIWAN&lt;br /&gt;
| This is the last Nano that used a PortalPlayer processor before Apple started using Samsung. If anybody knows of a datasheet for this, please add a link to it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| SDRAMg&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG Samsung K4M56163PG]&lt;br /&gt;
| SEC534 BG75, K4M56163PG, AQF061WX&lt;br /&gt;
| A datasheet for this Mobile SDRAM chip can be found [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here].&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41856 SST39WF400A]&lt;br /&gt;
| SST39WF400A, 90-4C-C1QE, 0528149A&lt;br /&gt;
| This chip is documented very well. A similar chip is on the [[Nano 2G]].&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Click wheel controller&lt;br /&gt;
| CY8C21434&lt;br /&gt;
| CPMCYP, 6360A 02, K0R0512, 610881&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ATA flash disk controller&lt;br /&gt;
| SST5SLD019K&lt;br /&gt;
| Logo, 55LD019K, 45-C-MWE, 0528071-A4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Audio codec&lt;br /&gt;
| WM8975G&lt;br /&gt;
| WM8975G, 56AGVF4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Step down regulator&lt;br /&gt;
| LM34910&lt;br /&gt;
| JM54RE, 34910SD&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Power manager&lt;br /&gt;
| PCF50607&lt;br /&gt;
| CF50607, 605940, Bug528, 23e/N1Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
| Logo, 5F, 4066, N7537&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses:&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPod_nano-whatsinside-2.aspx&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2005/09/nano.ars/4&lt;br /&gt;
*[http://pc.watch.impress.co.jp/docs/2005/0908/nano21.jpg Image of the 1G Nano board]&lt;br /&gt;
*[http://www.ipodlinux.org/wiki/Generations#iPod_Nano_.28Nano1G.29] - See the pictures listed&lt;br /&gt;
Other:&lt;br /&gt;
*http://www.ipodlinux.org/wiki/Generations&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22141</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22141"/>
		<updated>2025-06-21T18:38:42Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add links to usb ids section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does, however, support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device&amp;lt;ref&amp;gt;https://www.rockbox.org/irc/log-20080904#13:31:44&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 2G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1260&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1220&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1240&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 3G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1262&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;1224&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1242&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 4G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1263&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1225&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1243&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 5G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1265&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1231&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1246&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[Nano 6G]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1266&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1232&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1248&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[Nano 7G]]&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1267&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1249&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| &amp;lt;code&amp;gt;124a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1261&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1241&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| &amp;lt;code&amp;gt;1245&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev B&lt;br /&gt;
| &amp;lt;code&amp;gt;1247&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| &amp;lt;code&amp;gt;1250&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_7G&amp;diff=22140</id>
		<title>Nano 7G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_7G&amp;diff=22140"/>
		<updated>2025-06-21T18:37:54Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (7th generation)}}&lt;br /&gt;
[[Image:Nano7g_front.jpg|500px]]&lt;br /&gt;
[[Image:Nano7g_back.jpg|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff0004&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| PMIC&lt;br /&gt;
| &lt;br /&gt;
| Apple 338S1099&lt;br /&gt;
| Guessing based on connectivity to power components around.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff9024&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| Bluetooth + FM radio&lt;br /&gt;
| Broadcom BCM2078KUBG&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#f3e00e&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| NXP Semiconductors 1609A1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#16dc81&amp;quot;&amp;gt;Green&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 75203 23017&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#2343e8&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 75292 98820&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND flash&lt;br /&gt;
| Toshiba THGBX2G7D2JLA01 128 Gb (16 GB)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#ff9024&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| Touchscreen controller&lt;br /&gt;
| Texas Instruments 343S0538&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#f3e00e&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Apple 338S1146&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#16dc81&amp;quot;&amp;gt;Green&amp;lt;/span&amp;gt;&lt;br /&gt;
| SoC/CPU&lt;br /&gt;
| S5L8740&lt;br /&gt;
| 339S0193&lt;br /&gt;
| 8740 per IMG1. Guessing based on similar package to N6G SoC/CPU. Also has the most diffpairs running to/from it (from delayered PCB).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
* https://www.ifixit.com/Teardown/iPod+Nano+7th+Generation+Teardown/10826&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Reviews:&lt;br /&gt;
* TODO&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Core ==&lt;br /&gt;
&lt;br /&gt;
Cortex A5 according to CP15:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ID code: 0x410fc050&lt;br /&gt;
  Implementer: ARM&lt;br /&gt;
  Variant: 0x0&lt;br /&gt;
  Architecture: See CPUID&lt;br /&gt;
  Part number: c05, Revision: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Memory Map ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x38C00000&lt;br /&gt;
| AES&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500000&lt;br /&gt;
| CLKCON&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C700000&lt;br /&gt;
| TIMER&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CC00000&lt;br /&gt;
| UART0&lt;br /&gt;
|-&lt;br /&gt;
| 0x3CF00000&lt;br /&gt;
| GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D100000&lt;br /&gt;
| CHIPID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clock Gates ==&lt;br /&gt;
&lt;br /&gt;
There is no big debug table with all clock gates in N7G RetailOS, so the following has been written out by hand:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Bits (clear to power on) !! Meaning !! Source&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50006C&lt;br /&gt;
| 0x2000&lt;br /&gt;
| &#039;SPI power&#039;&lt;br /&gt;
| WTF DevicePowerManagement.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004C&lt;br /&gt;
| 0x4&lt;br /&gt;
| &#039;SPI power&#039;&lt;br /&gt;
| WTF DevicePowerManagement.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004c&lt;br /&gt;
| 0x1f800020&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500058&lt;br /&gt;
| 0x60&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|-&lt;br /&gt;
| 0x3c50006c&lt;br /&gt;
| 0xc0007f&lt;br /&gt;
| Timer&lt;br /&gt;
| WTF IpodSec.dll&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=22139</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=22139"/>
		<updated>2025-06-21T18:37:44Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (6th generation)}}&lt;br /&gt;
[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Cirrus Logic CLI1544C0&lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| PMU&lt;br /&gt;
| Dialog D1830B&lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| FM receiver&lt;br /&gt;
| Silicon Labs Si4800&lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8723&lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| Samsung APL3278A01 ARM Application processor&lt;br /&gt;
Samsung K4X51323PI Mobile DDR SDRAM (64 MB)&lt;br /&gt;
&lt;br /&gt;
Rusty Mercury says it&#039;s a Samsung S5L8723, a step up from the previous Samsung 8730. [http://twitter.com/RustyMercury/status/23268805957 source]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| Touchscreen controller&lt;br /&gt;
| Cypress CY8C20746B&lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The red and black wires lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;br /&gt;
Reviews:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2010/09/6th-generation-ipod-nano.ars&lt;br /&gt;
*http://www.ubmtechinsights.com/reports-and-subscriptions/investigative-analysis/apple-ipod-nano/&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_5G&amp;diff=22138</id>
		<title>Nano 5G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_5G&amp;diff=22138"/>
		<updated>2025-06-21T18:37:33Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (5th generation)}}&lt;br /&gt;
[[Image:nano_5g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_5g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8730&lt;br /&gt;
| 339S0081 ARM, K4X51323PG-UGC6, EDE168AG 0928, APL0378A00, N1X2XW 0931&lt;br /&gt;
| Printed backwards on the chip - how sneaky. ARM1176JZF-S core (per CP15 data).&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Various 8/16 GB chips&lt;br /&gt;
| TH58NVG6D2ELA49, ID8038, TAIWAN, 09299AE&lt;br /&gt;
| One example is TH58NVG6D2ELA49 visible on the iFixit Teardown&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| Probably Dialog&lt;br /&gt;
| 338S0707, -AD, 09278HGZ&lt;br /&gt;
| Similar looking and named chips like this have been power managers. Apple uses chips like these in just about every device.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Cirrus Logic CLI1480A&lt;br /&gt;
| 338S0559, ATWV0926, SGP&lt;br /&gt;
| Also found in the Touch 3G. Stereo CODEC w/ Headphone and Speaker Amp&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00213611.pdf LIS331DLM]&lt;br /&gt;
| 33DM, 2910&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0630, CK9Y, 925&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Code Execution ==&lt;br /&gt;
&lt;br /&gt;
Code execution on the Nano 5G was achieved by blindly porting [[WInd3x|wInd3x]].&lt;br /&gt;
&lt;br /&gt;
== CP15 Registers ==&lt;br /&gt;
&lt;br /&gt;
Dump of CP15 registers from bootrom context:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! cX !! cY !! opc2 !! Description !! Value !! Interpretation&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Main ID&lt;br /&gt;
| 410fb764&lt;br /&gt;
| ARM (0x41), Variant 0, Architecture: see CPUID, Part: ARM1176&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Cache Type&lt;br /&gt;
| 1d152152&lt;br /&gt;
| Write back, format C cache lockdown, Register 7 cache cleaning operations, separate I/D caches; data cache: (no restriction on page allocation, 16KB, 4-way associative, 2 word line length) istrunction cache: (no restrictions on page allocation, 16KB, 4-way, 2 word)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| TCM Status&lt;br /&gt;
| 00000000&lt;br /&gt;
| No tightly coupled memory.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 3&lt;br /&gt;
| TLB Type&lt;br /&gt;
| 00000800&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Processor Feature 0&lt;br /&gt;
| 00000111&lt;br /&gt;
| Jazelle, Thumb1, ARM (no Thumb2)&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Processor Feature 1&lt;br /&gt;
| 00000011&lt;br /&gt;
| Security Extensions Architecture v1, Standard ARMv4 programmer&#039;s model. No microcontroller model.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Debug Feature 0&lt;br /&gt;
| 00000033&lt;br /&gt;
| v6.1 Secure Debug, v6.1 Debug.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| Auxiliary Feature 0&lt;br /&gt;
| 00000000&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| Memory Model Feature 0&lt;br /&gt;
| 01130003&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| Memory Model Feature 1&lt;br /&gt;
| 10030302&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 6&lt;br /&gt;
| Memory Model Feature 2&lt;br /&gt;
| 01222100&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 7&lt;br /&gt;
| Memory Model Feature 3&lt;br /&gt;
| 00000000&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| Instruction Set Feature Attribute 0&lt;br /&gt;
| 00140011&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction Set Feature Attribute 1&lt;br /&gt;
| 12002111&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| Instruction Set Feature Attribute 2&lt;br /&gt;
| 11231121&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| Instruction Set Feature Attribute 3&lt;br /&gt;
| 01102131&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
| Instruction Set Feature Attribute 4&lt;br /&gt;
| 00001141&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| 5&lt;br /&gt;
| Instruction Set Feature Attribute 5&lt;br /&gt;
| 00000000&lt;br /&gt;
| Standard ARM1176JZF-S.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Control&lt;br /&gt;
| 00450078&lt;br /&gt;
| No Force AP, no TEX remap, CPSR E set to 0 on exception, no VIC, no extended page tables, allow unaligned data access, no fast interrupts, global enable for instruction/data TCM, loads to PC set the T bit, random cache replacement, exceptions vectors at Vector Base Address Register. I$, D$ disabled by wInd3x, branch prediction disabled, no strict alignment fault checking, no MMU.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Auxiliary Control&lt;br /&gt;
| 00000007&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| Coprocessor Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Secure Configuration&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Secure Debug Enable&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Non-Secure Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Translation Table Base 0&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Translation Table Base 1&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 2&lt;br /&gt;
| Translation Table Base Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Domain Access Control&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| PCA&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| Cache Dirty Status&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Data Cache Lockdown&lt;br /&gt;
| fffffff0&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction Cache Lockdown&lt;br /&gt;
| fffffff0&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Data TCM Region&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Instruction TCM Region&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| Data TCM Non-secure Control Access&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| Instruction TCM Non-secure Control Access&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| TCM Selection&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 8&lt;br /&gt;
| 0&lt;br /&gt;
| Cache Behavior Override&lt;br /&gt;
| 00000000&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clock Gates ==&lt;br /&gt;
&lt;br /&gt;
The clock gate registers are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Address !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500048&lt;br /&gt;
| GATES[0]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50004C&lt;br /&gt;
| GATES[1]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500058&lt;br /&gt;
| GATES[4]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C500068&lt;br /&gt;
| GATES[8]&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C50006C&lt;br /&gt;
| GATES[9]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
GATES[2, 3, 5, 6, 7], etc seem to be unused. A clock is enabled by setting a corresponding bit (GATE[n][m]) low. The following clock gates have been extracted by analyzing debug structures in OSOS. We also provide the &#039;numerical&#039; argument that can be passed to the clkgen_{enable,disable}_gate function calls in the BootROM. The BootROM will automatically enable some function-related gates together if one is specified. This is probably a leftover from earlier codebases where one functionality would correspond to one clock gate bit, while now a functionality might be gated behind multiple bits.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Function !! Register(s)/Bit(s) !! Number in BootROM&lt;br /&gt;
|-&lt;br /&gt;
| AES&lt;br /&gt;
| GATE[0][7]&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| AMC&lt;br /&gt;
| GATE[0][3]&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| AMC-core&lt;br /&gt;
| GATE[0][4]&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| AMCSS&lt;br /&gt;
| GATE[1][17]&lt;br /&gt;
| 38&lt;br /&gt;
|-&lt;br /&gt;
| ARM-core&lt;br /&gt;
| GATE[0][15]&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| ARM-icu&lt;br /&gt;
| GATE[0][16]&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| ARM-sleep&lt;br /&gt;
| GATE[0][20]&lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| AXI-bus&lt;br /&gt;
| GATE[1][18]&lt;br /&gt;
| 39&lt;br /&gt;
|-&lt;br /&gt;
| AXI-spine&lt;br /&gt;
| GATE[8][13]&lt;br /&gt;
| 63&lt;br /&gt;
|-&lt;br /&gt;
| AXI-video&lt;br /&gt;
| GATE[8][14]&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| CAMIF&lt;br /&gt;
| GATE[0][17], GATE[8][15]&lt;br /&gt;
| 17, 65&lt;br /&gt;
|-&lt;br /&gt;
| CEATA&lt;br /&gt;
| GATE[0][6]&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| CLCD&lt;br /&gt;
| GATE[8][9]&lt;br /&gt;
| 59&lt;br /&gt;
|-&lt;br /&gt;
| CLCD-OTF&lt;br /&gt;
| GATE[8][10]&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| CSIS&lt;br /&gt;
| GATE[0][18]&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| DDR-MIU&lt;br /&gt;
| GATE[9][17]&lt;br /&gt;
| 89&lt;br /&gt;
|-&lt;br /&gt;
| DMAC0&lt;br /&gt;
| GATE[0][11]&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| DMAC1&lt;br /&gt;
| GATE[0][12]&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| DMAX&lt;br /&gt;
| GATE[8][8]&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| ECC&lt;br /&gt;
| GATE[0][9]&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| ECID&lt;br /&gt;
| GATE[1][14]&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| FMC&lt;br /&gt;
| GATE[0][5]&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| GATE[1][12]&lt;br /&gt;
| 33&lt;br /&gt;
|-&lt;br /&gt;
| H264&lt;br /&gt;
| GATE[8][2], GATE[9][18]&lt;br /&gt;
| 52, 90&lt;br /&gt;
|-&lt;br /&gt;
| H264ENC&lt;br /&gt;
| GATE[4][7], GATE[8][16], GATE[8][17]&lt;br /&gt;
| 60, 66, 67&lt;br /&gt;
|-&lt;br /&gt;
| IIC0&lt;br /&gt;
| GATE[1][4], GATE[9][11]&lt;br /&gt;
| 25, 83&lt;br /&gt;
|-&lt;br /&gt;
| IIC1&lt;br /&gt;
| GATE[1][6], GATE[9][12]&lt;br /&gt;
| 27, 84&lt;br /&gt;
|-&lt;br /&gt;
| IIS0&lt;br /&gt;
| GATE[1][7]&lt;br /&gt;
| 28&lt;br /&gt;
|-&lt;br /&gt;
| IIS1&lt;br /&gt;
| GATE[1][10]&lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| IIS2&lt;br /&gt;
| GATE[1][16]&lt;br /&gt;
| 37&lt;br /&gt;
|-&lt;br /&gt;
| JPEG&lt;br /&gt;
| GATE[0][19]&lt;br /&gt;
| 19&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| GATE[0][1], GATE[9][16]&lt;br /&gt;
| 1, 88&lt;br /&gt;
|-&lt;br /&gt;
| MBX-3D&lt;br /&gt;
| GATE[8][6]&lt;br /&gt;
| 56&lt;br /&gt;
|-&lt;br /&gt;
| MBX-bus&lt;br /&gt;
| GATE[8][7]&lt;br /&gt;
| 57&lt;br /&gt;
|-&lt;br /&gt;
| MBX-core&lt;br /&gt;
| GATE[8][5]&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| MIPI-link&lt;br /&gt;
| GATE[1][19]&lt;br /&gt;
| 40&lt;br /&gt;
|-&lt;br /&gt;
| MIXER&lt;br /&gt;
| GATE[8][1]&lt;br /&gt;
| 51&lt;br /&gt;
|-&lt;br /&gt;
| MPVD&lt;br /&gt;
| GATE[8][3]&lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| PKE&lt;br /&gt;
| GATE[1][13]&lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| PL301MPVD&lt;br /&gt;
| GATE[1][21]&lt;br /&gt;
| 42&lt;br /&gt;
|-&lt;br /&gt;
| PRNG&lt;br /&gt;
| GATE[1][0]&lt;br /&gt;
| 21&lt;br /&gt;
|-&lt;br /&gt;
| RINGOSC&lt;br /&gt;
| GATE[4][0]&lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| SCALER&lt;br /&gt;
| GATE[8][4], GATE[9][25]&lt;br /&gt;
| 54, 97&lt;br /&gt;
|-&lt;br /&gt;
| SDIO&lt;br /&gt;
| GATE[0][8]&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| SHA1&lt;br /&gt;
| GATE[0][0]&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| SPD&lt;br /&gt;
| GATE[1][8]&lt;br /&gt;
| 29&lt;br /&gt;
|-&lt;br /&gt;
| SPI0&lt;br /&gt;
| GATE[1][2], GATE[9][13]&lt;br /&gt;
| 23, 85&lt;br /&gt;
|-&lt;br /&gt;
| SPI1&lt;br /&gt;
| GATE[1][11], GATE[9][14]&lt;br /&gt;
| 32, 86&lt;br /&gt;
|-&lt;br /&gt;
| SPI2&lt;br /&gt;
| GATE[1][15], GATE[9][15]&lt;br /&gt;
| 36, 87&lt;br /&gt;
|-&lt;br /&gt;
| SPI3&lt;br /&gt;
| GATE[4][1], GATE[9][19]&lt;br /&gt;
| 54, 91&lt;br /&gt;
|-&lt;br /&gt;
| SPI4&lt;br /&gt;
| GATE[4][4], GATE[9][20]&lt;br /&gt;
| 57, 92&lt;br /&gt;
|-&lt;br /&gt;
| SWI&lt;br /&gt;
| GATE[4][2], GATE[9][21]&lt;br /&gt;
| 55, 93&lt;br /&gt;
|-&lt;br /&gt;
| TIMER0&lt;br /&gt;
| GATE[1][5], GATE[9][0]&lt;br /&gt;
| 26, 72&lt;br /&gt;
|-&lt;br /&gt;
| TIMER1&lt;br /&gt;
| GATE[1][23], GATE[9][1]&lt;br /&gt;
| 44, 73&lt;br /&gt;
|-&lt;br /&gt;
| TIMER2&lt;br /&gt;
| GATE[1][24], GATE[9][2]&lt;br /&gt;
| 45, 74&lt;br /&gt;
|-&lt;br /&gt;
| TIMER3&lt;br /&gt;
| GATE[1][25], GATE[9][3]&lt;br /&gt;
| 46, 75&lt;br /&gt;
|-&lt;br /&gt;
| TIMER4&lt;br /&gt;
| GATE[1][26], GATE[9][4]&lt;br /&gt;
| 47, 76&lt;br /&gt;
|-&lt;br /&gt;
| TIMER5&lt;br /&gt;
| GATE[1][27], GATE[9][5]&lt;br /&gt;
| 48, 77&lt;br /&gt;
|-&lt;br /&gt;
| TIMER6&lt;br /&gt;
| GATE[1][28], GATE[9][6]&lt;br /&gt;
| 49, 78&lt;br /&gt;
|-&lt;br /&gt;
| TIMER7&lt;br /&gt;
| GATE[4][5], GATE[9][22]&lt;br /&gt;
| 58, 94&lt;br /&gt;
|-&lt;br /&gt;
| TIMER8&lt;br /&gt;
| GATE[4][6], GATE[9][23]&lt;br /&gt;
| 59, 95&lt;br /&gt;
|-&lt;br /&gt;
| TVOUT&lt;br /&gt;
| GATE[0][10]&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| TW&lt;br /&gt;
| GATE[1][1]&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| UART0&lt;br /&gt;
| GATE[1][9], GATE[9][7]&lt;br /&gt;
| 30, 79&lt;br /&gt;
|-&lt;br /&gt;
| UART1&lt;br /&gt;
| GATE[1][29], GATE[9][8]&lt;br /&gt;
| 50, 80&lt;br /&gt;
|-&lt;br /&gt;
| UART2&lt;br /&gt;
| GATE[1][30], GATE[9][9]&lt;br /&gt;
| 51, 81&lt;br /&gt;
|-&lt;br /&gt;
| UART3&lt;br /&gt;
| GATE[1][31], GATE[9][10]&lt;br /&gt;
| 52, 82&lt;br /&gt;
|-&lt;br /&gt;
| UART4&lt;br /&gt;
| GATE[4][8], GATE[9][26]&lt;br /&gt;
| 61, 98&lt;br /&gt;
|-&lt;br /&gt;
| USB-OTG&lt;br /&gt;
| GATE[0][2]&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB2-PHY&lt;br /&gt;
| GATE[1][3]&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GATE[8][0]&lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
| VROM&lt;br /&gt;
| GATE[0][13]&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| XMC&lt;br /&gt;
| GATE[8][12]&lt;br /&gt;
| 62&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-nano-5th-Generation-Teardown/1157&lt;br /&gt;
Other:&lt;br /&gt;
*http://purpleskank.wikidot.com/ipod-nano-5g&lt;br /&gt;
*http://www.ubmtechinsights.com/reports-and-subscriptions/device-library/Device-Profile/?SINumber=23271&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_4G&amp;diff=22137</id>
		<title>Nano 4G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_4G&amp;diff=22137"/>
		<updated>2025-06-21T18:37:24Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (4th generation)}}&lt;br /&gt;
[[Image:nano_4g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_4g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8720&lt;br /&gt;
| 339S0049 ARM, K4X56323PI-KGC4, YWE025QH 825, APL0278A00, N1B2HOP 0831&lt;br /&gt;
| ARM1176JZF-S processor. It is definitely worth knowing that this is the exact same processor used in the iTouch 2G. This could mean that some of the same exploits for that could possibly be used. [http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware) Here] is a very interesting page about the S5L8720 processor.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| SDRAM&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| 32MB, probably MDDR. Integrated into the processor, similar to the iPod Touch and iPhone lines.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Accelerometer&lt;br /&gt;
| [http://www.st.com/stonline/products/literature/ds/12726.pdf LIS302DL]&lt;br /&gt;
| 33DL, 2827&lt;br /&gt;
| The newer Touch&#039;s, iPhone&#039;s, and even the iPad have similar accelerometers, and I&#039;ve discovered a pattern in the chip names.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| TH58NVG6D1DLA87, U20516, JAPAN, 0826MAE&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| [http://www.cirrus.com/en/pubs/proDatasheet/CS42L55_F1.pdf CS42L58]&lt;br /&gt;
| 338S055C, 189N0824, SGP&lt;br /&gt;
| I determined this because the [[Nano 5G]] has a similar chip, which we are sure of the identity. One person lifted this chip and found that the pins connect to the LCD connector. Not much info was given, and it could just be a common ground, but the identity of this chip is still up in the air.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Power manager&lt;br /&gt;
| Dialog D1759&lt;br /&gt;
| 338S0687-AC, 08288HBB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bootrom ==&lt;br /&gt;
&lt;br /&gt;
See [[S5L8720 Bootrom]]. Different from the S5L8720 bootrom used in the iPod Touch 2G (which is iBoot-based, a.k.a. SecureROM).&lt;br /&gt;
&lt;br /&gt;
== Memory Map ==&lt;br /&gt;
&lt;br /&gt;
See [https://www.theiphonewiki.com/wiki/S5L8720_(Hardware)] and [https://code.google.com/archive/p/chronicdev/wikis/N72APDevTree.wiki].&lt;br /&gt;
&lt;br /&gt;
In addition to the above, a few extra memory regions have been found while reverse engineering the [[S5L8720 Bootrom]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Mystery DMA&lt;br /&gt;
| 0x3880_0000&lt;br /&gt;
| A PL080-like DMA engine, but with slightly different MMIO register structure. Used by the [[S5L8720 Bootrom|bootrom]] to copy the DFU payload from 0x2200_0600 to 0x2200_0000 after decryption and verification. Or maybe that&#039;s actually doing the decryption? To be investigated.&lt;br /&gt;
|-&lt;br /&gt;
| Mystery Interrupt Thing&lt;br /&gt;
| 0x39a0_0000&lt;br /&gt;
| Not the VICs (0x38e0_0000, 0x38e0_1000), not the EdgeIC (0x38e0_2000). Seems to hold 7 different 32-bit registers for interrupt status at 0xa0, and 7 different 32-bit registers for interrupt mask at 0xc0. The 7 different registers correspond to 7 &#039;modes&#039; of ISRs set up in the bootrom. Not much is known about what it does, and what these &#039;modes&#039; are. To be investigated.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reverse Engineering Results==&lt;br /&gt;
Timers: These clockgates have been found to be related to timers: 37, 55, 56, 57, 58, 59, 60, 69, 70, 128, 129, 130, 131, 132, 133, 134, 150 and 151.&lt;br /&gt;
&lt;br /&gt;
==Status registers==&lt;br /&gt;
We dumped all c0 coprocessor registers:&lt;br /&gt;
&lt;br /&gt;
===c0,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x410FB764&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM1176 rev. 4&lt;br /&gt;
===c0,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x1D152152&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; DCache/ICache 16KB each, 4 way associative, 32 bytes line size&lt;br /&gt;
===c0,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No TCM&lt;br /&gt;
===c0,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000800&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Unified TLB, 8 lockable entries&lt;br /&gt;
===c1,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; ARM/Thumb1/Jazelle support, no Thumb2 support&lt;br /&gt;
===c1,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Trustzone v1&lt;br /&gt;
===c1,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000033&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports debug model v6.1, both applications processor and secure&lt;br /&gt;
===c1,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No auxiliary features&lt;br /&gt;
===c1,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01130003&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; FCSE, Auxiliary Control register, ARMv6 TCM/DMA, no DMA cache coherency, no multicore cache coherency, VMSA v7&lt;br /&gt;
===c1,c5===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x10030302&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Branch target buffer, Harvard architecture, various cache operations supported (see TRM)&lt;br /&gt;
===c1,c6===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01222100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; WFI, Data synchronization barrier, Prefetch flush, Data memory barrier, various TLB/cache operations supported (see TRM), no prefetch cache range operation&lt;br /&gt;
&lt;br /&gt;
===c1,c7===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No hierarchical cache maintenance support&lt;br /&gt;
===c2,c0===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00140011&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BKPT, CDP, CDP2, LDC, LDC2, MCD, MCD2, MRC, MRC2, STC, STC2, MCRR, MCRR2, MRRC, MRRC2, CLZ, SWP and SWPB, doesn&#039;t support division, combined compare and branch or bitfield instructions&lt;br /&gt;
===c2,c1===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x12002111&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports BXJ, BX, BLX, PC loads have BX behavior, supports SXTB, SXTAB, SXTB16, SXTAB16, SXTH, SXTAH, UXTB, &lt;br /&gt;
UXTAB, UXTB16, UXTAB16, UXTH, UXTAH, SRS, RFE, CPS, LDM(2), LDM(3), STM(2) and SETEND&lt;br /&gt;
===c2,c2===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x11231121&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports REV, REV16, REVSH, MRS, MSR, UMULL, UMLAL, UMAAL, SMULL, SMLAL, SMLABB, SMLABT, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB, SMLAWT, SMULBB, SMULBT, SMULTB, SMULTT, SMULWB, SMULWT, SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR, SMMUL, SMMULR, SMUAD, SMUADX, SMUSD, SMUSDX, MLA, restartable LDM/STM, PLD, LDRD, STRD and Q bit in PSRs&lt;br /&gt;
===c2,c3===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x01102131&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports true NOP, Thumb MOV(3)/CPU, LDREX, STREX, LDREXB, LDREXH, LDREXD, STREXB, STREXH, STREXD, CLREX, SVC, PKHBT, PKHTB, QADD16, QADD8, QADDSUBX, QSUB16, QSUB8, QSUBADDX, SADD16, SADD8, SADDSUBX, SEL, SHADD16, SHADD8, SHADDSUBX, SHSUB16, SHSUB8, SHSUBADDX, SSAT, SSAT16, SSUB16, SSUB8, SSUBADDX, SXTAB16, SXTB16, UADD16, UADD8, UADDSUBX, UHADD16, UHADD8, UHADDSUBX, UHSUB16, UHSUB8, UHSUBADDX, UQADD16, UQADD8, UQADDSUBX, UQSUB16, UQSUB8, UQSUBADDX, USAD8, USADA8, USAT, USAT16, USUB16, USUB8, USUBADDX, UXTAB16, UXTB16, QADD, QDADD, QDSUB, QSUB, and the Q and GE[3:0] bits in the PSRs. Does nut support branch table and Thumb2 instructions.&lt;br /&gt;
===c2,c4===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00001141&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; Supports SMC, writeback instructions, shift of loads and stores by 0-3 bits to the left, constant shift options, register controlled shift options, LDRBT, LDRT, STRBT and STRT. No barrier instructions support.&lt;br /&gt;
===c2,c5===&lt;br /&gt;
&#039;&#039;&#039;Value:&#039;&#039;&#039; 0x00000000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039; No additional implementation defined instruction set extensions&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-4th-Generation/584/1&lt;br /&gt;
Other:&lt;br /&gt;
*http://theiphonewiki.com/wiki/index.php?title=S5L8720_(Hardware)&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22136</id>
		<title>Nano 3G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_3G&amp;diff=22136"/>
		<updated>2025-06-21T18:37:13Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (3rd generation)}}&lt;br /&gt;
[[Image:nano_3g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_3g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8702&lt;br /&gt;
| 337S3473 8702, NONBWOEC, 0731 ARM&lt;br /&gt;
| ARM926EJ-S processor. The package itself is Apple-branded and marked 337S3473 8702.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI] or Qimonda HYE18M169CX75&lt;br /&gt;
| 0728, C, HYE18M256, 169CX75, W3338092&lt;br /&gt;
| SDRAM - Mobile DDR, 256Mb, 1.8V. WORK ON THIS: Like the flash chip, the memory also varies. The most popular chip seems to be the [http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]. Another similar one that is sometimes used is the Qimonda HYE18M169CX75&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
| V80B, 729379&lt;br /&gt;
| Flash - NOR, 8Mb, Serial SPI&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
| Samsung 728, K9HCG08U5M, PCB0, FCF285X1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Audio codec&lt;br /&gt;
| WM1870&lt;br /&gt;
| APPLE, 338S0462, 76BZKTM&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Power manager&lt;br /&gt;
| D1671B&lt;br /&gt;
| 338S0408, 07258HAH&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SPI NOR Test Pads ==&lt;br /&gt;
&lt;br /&gt;
Test pads are available on the back of the board to access SCK, MISO and CS between the SoC and the NOR utility flash. MOSI is also present, but is buried in an internal layer (second from back) which can be  accessed by carefully scraping off the top FR4 using a sharp tool, or by using a tiny carbide bit on a milling machine.&lt;br /&gt;
&lt;br /&gt;
[[Image:N3g-spi-nor.png|500px]]&lt;br /&gt;
[[Image:N3g-spi-nor-zoom.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Notes ==&lt;br /&gt;
=== CPU ===&lt;br /&gt;
The Apple S5L8702 is an ARM926EJ-S processor designed by Samsung. It is estimated to run at 100MHz (I read this somewhere but I don&#039;t remember where). The basics of the chip are similar to the S5L8700x for which there is [[S5L8700 datasheet|a leaked datasheet]]. For some peripherals, merely a base address has changed. For others, full subsystems have been updated and refined. &lt;br /&gt;
&lt;br /&gt;
=== GPU ===&lt;br /&gt;
Very little is known about the GPU core other than the fact that it almost certainly exists. It&#039;s likely a single PowerVR GPU core that can maybe can decode H.264 content up to 480p (or perhaps there&#039;s another peripheral responsible for this?). It&#039;s also possible that the GPU is responsible for rendering games, since it appears the games use some form of OpenGL ES. CoverFlow also probably leverages the GPU.&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
The S5L8702 has several I2C busses (two, probably?), but possibly only one is used (bus #0). On this bus, there are currently two known slaves:&lt;br /&gt;
* The PMU at address 0x73&lt;br /&gt;
* The DAC at address 0x1A&lt;br /&gt;
The bus runs at 1.8V with a clock of 333.33KHz.&lt;br /&gt;
&lt;br /&gt;
Other notes about the I2C peripheral from Rockbox:&lt;br /&gt;
* s5l8702 I2C controller is similar to s5l8700, known differences are:&lt;br /&gt;
** IICCON[5] is not used in s5l8702.&lt;br /&gt;
** IICCON[13:8] are used to enable interrupts.&lt;br /&gt;
** IICSTA2[13:8] are used to read the status and write-clear interrupts.&lt;br /&gt;
* Known interrupts:&lt;br /&gt;
** [13] STOP on bus (TBC)&lt;br /&gt;
** [12] START on bus (TBC)&lt;br /&gt;
** [8] byte transmitted or received in Master mode (not tested in Slave)&lt;br /&gt;
** IICCON[4] does not clear interrupts, it is enabled when a byte is transmited or received, in Master mode the tx/rx of the next byte starts when it is written as &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Digital Audio Subsystem (I2S) ===&lt;br /&gt;
The iPod n3g uses a Wolfson DAC (WM1870) to convert digital audio to analog audio. The S5L8702 sends digital audio in the form of I2S data at 44.1kHz with 16-bit resolution. Even if there is no audio playing, at some point during boot up, the I2S peripheral is turned on, meaning the Bit Clock and Word Select are always on. During the 1kHz tone test in the diagnostic menu, the I2S mode is different, possibly a half-data mode since the test tone is one channel.&lt;br /&gt;
The S5L8702 seems to support 3 I2S interfaces, but only one is used for audio playback. It&#039;s possible another one is used for microphone recording (when an Apple headset with a microphone is plugged in, you can record voice memos) but this is unconfirmed.&lt;br /&gt;
&lt;br /&gt;
The S5L8702 sends data to the DAC at full volume no matter what. Volume is configured via I2C bus #0. As far as I can tell, two commands are issued to change the volume:&lt;br /&gt;
 Address 0x1A, Data 0x04 &amp;lt;volume&amp;gt;&lt;br /&gt;
 Address 0x1A, Data 0x07 &amp;lt;volume&amp;gt;&lt;br /&gt;
Where &amp;lt;volume&amp;gt; is a number between 0xB7 for quietest to 0xF5 for loudest. It&#039;s also possible that a special value of 0x80 is for full mute, but this is unconfirmed. It&#039;s also unclear what the 0x04 and 0x07 mean, perhaps it&#039;s capable of changing the volume of both channels independently?&lt;br /&gt;
&lt;br /&gt;
Both the I2C and I2S busses run at 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== NAND ===&lt;br /&gt;
NAND hardware is an enigma. There has been a rather substantial effort on this subsystem alone. Most of that is documented [https://github.com/lemonjesus/S5L8702-FMISS-Tools here].&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses:&lt;br /&gt;
*http://www2.electronicproducts.com/Applie_iPod_Nano_(4GB)_3rd_Generation-whatsinside-16.aspx#&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://content.techrepublic.com.com/2346-13636_11-170826-1.html&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-3rd-Generation/594/1&lt;br /&gt;
*http://insidetronics.blogspot.com/2007/09/teardown-ipod-nano-3g.html&lt;br /&gt;
*[http://www.combert-elec.com/www/bookpic/200810916515460624.jpg Image of 3G Nano board]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_1G&amp;diff=22135</id>
		<title>Nano 1G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_1G&amp;diff=22135"/>
		<updated>2025-06-21T18:37:02Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (1st generation)}}&lt;br /&gt;
[[Image:nano_1g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_1g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| CPU&lt;br /&gt;
| Portal Player PP5021C-TDF&lt;br /&gt;
| PP5021C-TDF, L9A0633, U0530 Logo, WYH30113.1, TAIWAN&lt;br /&gt;
| This is the last Nano that used a PortalPlayer processor before Apple started using Samsung. If anybody knows of a datasheet for this, please add a link to it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG Samsung K4M56163PG]&lt;br /&gt;
| SEC534 BG75, K4M56163PG, AQF061WX&lt;br /&gt;
| A datasheet for this Mobile SDRAM chip can be found [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here].&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41856 SST39WF400A]&lt;br /&gt;
| SST39WF400A, 90-4C-C1QE, 0528149A&lt;br /&gt;
| This chip is documented very well. A similar chip is on the [[Nano 2G]].&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Click wheel controller&lt;br /&gt;
| CY8C21434&lt;br /&gt;
| CPMCYP, 6360A 02, K0R0512, 610881&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ATA flash disk controller&lt;br /&gt;
| SST5SLD019K&lt;br /&gt;
| Logo, 55LD019K, 45-C-MWE, 0528071-A4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Audio codec&lt;br /&gt;
| WM8975G&lt;br /&gt;
| WM8975G, 56AGVF4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Step down regulator&lt;br /&gt;
| LM34910&lt;br /&gt;
| JM54RE, 34910SD&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Power manager&lt;br /&gt;
| PCF50607&lt;br /&gt;
| CF50607, 605940, Bug528, 23e/N1Y&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
| Logo, 5F, 4066, N7537&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses:&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPod_nano-whatsinside-2.aspx&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2005/09/nano.ars/4&lt;br /&gt;
*[http://pc.watch.impress.co.jp/docs/2005/0908/nano21.jpg Image of the 1G Nano board]&lt;br /&gt;
*[http://www.ipodlinux.org/wiki/Generations#iPod_Nano_.28Nano1G.29] - See the pictures listed&lt;br /&gt;
Other:&lt;br /&gt;
*http://www.ipodlinux.org/wiki/Generations&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_2G&amp;diff=22134</id>
		<title>Nano 2G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_2G&amp;diff=22134"/>
		<updated>2025-06-21T18:35:15Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:iPod nano (2nd generation)}}&lt;br /&gt;
[[Image:nano_2g_frt_a.jpg|300px]]&lt;br /&gt;
[[Image:nano_2g_bck_a.jpg|300px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8701&lt;br /&gt;
|337S32918701, N042DQS, 0636 ARM&lt;br /&gt;
| System On Chip (SoC), includes ARM940T central processor, advanced DSP, 50kB boot ROM, 176kB SRAM, external RAM, flash and LCD controllers, USB(1.1-host; 2.0-function) and some other parts. Package: [http://www.samsung.com/global/business/semiconductor/support/PackageInformation/downloads/SystemLSI/FBGA/232_FBGA_1010_12_05.pdf 232-pin FBGA 10x10mm] or 224/226-pin 9x9mm. Similar chips: [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&amp;amp;partnum=SA58700 SA58700X07].  Some documentation available for the S5L series can be found [[S5L8700 datasheet|here]]. The processor itself is Apple-branded and marked 337S3291 8701.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDRAM&lt;br /&gt;
| [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG Samsung K4M56163PG]&lt;br /&gt;
|SEC 637 GG75, K4M56163PG, AQH373P1&lt;br /&gt;
| [http://pdf1.alldatasheet.net/datasheet-pdf/view/168204/SAMSUNG/K4M56163PG.html here] is the datasheet. This is the same chip used in the [[Nano 1G]]. Sometimes the Qimonda [http://www.alldatasheet.com/datasheet-pdf/pdf/207179/QIMONDA/HYE18L256169BFX-7.5.html HYE18L256] chip is used instead.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Utility Flash&lt;br /&gt;
| [http://www.sst.com/products/?inode=41422 SST39WF800A]&lt;br /&gt;
|SST39WF800A, 90-4C-C2QE, 0631287-A&lt;br /&gt;
| stores Disk Mode, Diagnostic Mode and the code to flash this chip. Tof has [http://home.gna.org/linux4nano/dumping_SST39WF800A.html managed to extract] this data and the dump can be obtained by emailing Emmanuel Fleury. All of the contents in the utility flash chip are encrypted from now on.&lt;br /&gt;
|-&lt;br /&gt;
| N/A&lt;br /&gt;
| DSP&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Doesn&#039;t seem to be present at all.&lt;br /&gt;
|-&lt;br /&gt;
| B1&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| Varies&lt;br /&gt;
|TOSHIBA P11023, JAPAN 0636 KAE, TP0560, TH58NVG5D4CTG20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| USB charging&lt;br /&gt;
| LTC4066&lt;br /&gt;
|Linear Technology, 6H, 4066, B8966&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Audio codec&lt;br /&gt;
| Wolfson WM8975&lt;br /&gt;
|APPLE, 338S0310, 68BTST8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Step down regulator&lt;br /&gt;
| LM34910&lt;br /&gt;
|National Semiconductor, JM66RJ, L34910B&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| B2&lt;br /&gt;
| Power manager (below)&lt;br /&gt;
| NXP PCF50633UM&lt;br /&gt;
|APPLE, 338S0261, P29T6 04, cPG0637Y, 01/N2&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Guide/First-Look/iPod-Nano-2nd-Generation/592/1&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2006/09/ipod-2g.ars/4&lt;br /&gt;
*http://www.eetimes.com/design/audio-design/4016200/Tear-Down-Inside-the-Apple-8GB-iPod-nano (useful because it shows the power manager)&lt;br /&gt;
*http://forums.rockbox.org/index.php?PHPSESSID=d69e900c3215a165adee7165ece4eccb&amp;amp;topic=6518.msg62700#msg62700 (beautiful PCB scans)&lt;br /&gt;
Other:&lt;br /&gt;
*http://home.gna.org/linux4nano/download/hardware_synth-1.0.pdf&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22132</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22132"/>
		<updated>2025-06-21T16:58:13Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: add reference for n2g NOR DFU mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does, however, support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device&amp;lt;ref&amp;gt;https://www.rockbox.org/irc/log-20080904#13:31:44&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (2nd generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1260&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1220&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1240&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (3rd generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1262&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;1224&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1242&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (4th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1263&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1225&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1243&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (5th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1265&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1231&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1246&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (6th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1266&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1232&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1248&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | iPod nano (7th generation)&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1267&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1249&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| &amp;lt;code&amp;gt;124a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1261&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1241&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| &amp;lt;code&amp;gt;1245&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev B&lt;br /&gt;
| &amp;lt;code&amp;gt;1247&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| &amp;lt;code&amp;gt;1250&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Chronology&amp;diff=22131</id>
		<title>Chronology</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Chronology&amp;diff=22131"/>
		<updated>2025-06-21T15:56:30Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: make this page outdated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated|reason=This information is out of date. See [https://theapplewiki.com/wiki/List_of_iPods List of iPods] and [https://theapplewiki.com/wiki/List_of_iPod_nanos List of iPod nanos] for an up-to-date listing of iPod models.}}&lt;br /&gt;
This page list all models of iPods and set the naming of it. So that, on this wiki, or on IRC nobody can be confused with what we are speaking about. Please also refer to Apple&#039;s [http://support.apple.com/kb/HT1353 Identifying iPod Models]&amp;quot; page&lt;br /&gt;
&lt;br /&gt;
==iPod Series==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Model !! Introduced !! Capacity !! Notes &lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#scrollwheel 1G] &lt;br /&gt;
| 2001-10&lt;br /&gt;
| 5 GB or 10 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#touchwheel 2G]&lt;br /&gt;
| 2002-07 &lt;br /&gt;
| 10 GB or 20 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#dockconnector 3G] &lt;br /&gt;
| 2003-04&lt;br /&gt;
| 10 GB, 15 GB, 20 GB, 30 GB, or 40 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#clickwheel 4G (Greyscale)]&lt;br /&gt;
| 2004-07&lt;br /&gt;
| 20 GB or 40 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodphoto 4G (Color)]&lt;br /&gt;
| 2004-10&lt;br /&gt;
| 20 GB, 30 GB, or 60 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodfifth 5G (Video)]&lt;br /&gt;
| 2005-10&lt;br /&gt;
| 30 GB or 60 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodfifth2 5.5G (Video)]&lt;br /&gt;
| 2006-09&lt;br /&gt;
| 30 GB or 80 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodclassic (6G) Classic 1G]&lt;br /&gt;
| 2007-09&lt;br /&gt;
| 80 GB or 160 GB&lt;br /&gt;
| Encryption starts&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#iPod_classic_120GB (6G) Classic 2G]&lt;br /&gt;
| 2008-09&lt;br /&gt;
| 120 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#iPod_classic_160GB (6G) Classic 3G]&lt;br /&gt;
| 2009-09&lt;br /&gt;
| 160 GB&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==iPod Nano Series==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Model !! Introduced !! Capacity !! Notes &lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodnano Nano 1G]&lt;br /&gt;
| 2005-09&lt;br /&gt;
| 1 GB, 2 GB, or 4 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodnano2 Nano 2G]&lt;br /&gt;
| 2006-09&lt;br /&gt;
| 2 GB, 4 GB, or 8 GB&lt;br /&gt;
| Encryption starts&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#ipodnano3 Nano 3G]&lt;br /&gt;
| 2007-09&lt;br /&gt;
| 4 GB or 8 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#iPod_nano_4th_generation Nano 4G]&lt;br /&gt;
| 2008-09&lt;br /&gt;
| 8 GB or 16 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#iPod_nano5G Nano 5G]&lt;br /&gt;
| 2009-09&lt;br /&gt;
| 8 GB or 16 GB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://support.apple.com/kb/HT1353#iPod_Nano_6G Nano 6G]&lt;br /&gt;
| 2010-09&lt;br /&gt;
| 8 GB or 16 GB&lt;br /&gt;
| Multi-Touch display&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Timeline==&lt;br /&gt;
[[Image:IPod Timeline.png|800px|The timeline of iPod releases (from Wikipedia)]]&lt;br /&gt;
&lt;br /&gt;
==The Motive==&lt;br /&gt;
Understanding the mindset and motives behind Apple is key to understanding how and why the iPod was encrypted. While many people believe that the iPod was encrypted to put an end to iPodLinux and Rockbox, the main reason for the encryption was to thwart third-party imitators. Apple was not as concerned with iPodLinux and Rockbox because people were still buying their (overpriced) hardware, and therefore still generating profits. The main reason was because there were many imitations that replicated the hardware and ran the exact firmware that was run on normal iPods. This was a major drain of money for Apple. Another reason was that the DRM mechanism in the unencrypted firmware was being hacked. This allowed pirated content like games to be run without being bought.&lt;br /&gt;
==The Response==&lt;br /&gt;
Since Apple was losing money from the iPod imitators, they encrypted the firmware so the iPod clones could no longer use Apple firmware on their devices. There are still iPod clones out there (just search eBay), but very few use the Apple firmware anymore. Apple has encrypted all of their portable devices since the iPod Nano 2G.&lt;br /&gt;
==The Change==&lt;br /&gt;
In order to stop the fake iPods from using their firmware, Apple encrypted the firmware so only their devices could decrypt it. Apple changed their processor to Samsung and no longer used PortalPlayer.&lt;br /&gt;
==Helpful Pages==&lt;br /&gt;
http://support.apple.com/kb/HT1353&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22130</id>
		<title>RetailOS Options</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS_Options&amp;diff=22130"/>
		<updated>2025-06-21T15:48:53Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: displaytitle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:retailOS Options}}&lt;br /&gt;
[[OSOS]] has some &#039;secret&#039; options that you can enable by placing files into iPod_Control/Device.&lt;br /&gt;
&lt;br /&gt;
The following table shows all known options, with information on what device are they supported. Some of these appear to have no cross-references in q3k&#039;s decompilation, but that might be a tooling issue. Ideally, we should test every single one of these :).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Functionality !! Nano 5G&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;_enable_options&#039;&#039;&#039; || &#039;&#039;&#039;This file must be present for any other option to work.&#039;&#039;&#039; || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_numeric_volume || Displays numeric value when changing volume. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_cache || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _go_fast || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_voltage || Displays battery voltage at bottom of screen. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_speed || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_memory || Displays heap statistics at bottom of screen. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_fps || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_mbx_timeout || Mailbox timeouts? PowerVR MBX timeouts? Untested. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tvoutwidescreen || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _enable_logging || Writes high-level logs into iPod_Control/Logs. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _enable_crash_logging || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _enable_memory_logging || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_jpeg_decoder || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_sleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hibe_sleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_hibe || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hibe_beep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _short_deepsleep || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_deepsleep || Preempted by _short_deepsleep. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _dont_reject_vid || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tcsize || File contents read (number likely expected).  || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _speed || File contents read (number likely expected). Default -1. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _no_vc0_autopower || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _autopow_overlay || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _dartboard || Weird mode in which menu/play are swapped and iTunes database seems to be ignored. || ✔️ &lt;br /&gt;
|-&lt;br /&gt;
| _show_brightness || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _car_adapter || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_swap_configs || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_sinewave || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_authentication_optional || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_negotiation_optional || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_test_mode || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_lame_resampling || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_samplerate_match_style || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_resampling_method || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _usb_audio_show_status || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _serial_acc_iap_status || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _battery_always_low || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_cache_size || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_unsplit_decoders || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _heap_beep || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_autobaud || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ignore_volume_pref || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _record_max_16mb || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _vp_lang || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _mockup_mode || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _tvout_video_display || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _deblocking_off || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _force_AACHE || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _force_AACLC || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _reset_rtc || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _no_volume_control || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _honor_repeat || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _rental_notify_always || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _uart30pin_debug || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _uart2_debug || Preempted by _uart30pin_debug. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _mie_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _dragster_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _try_spirit_codecs || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _amc_r2d || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _crossfade_on || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _mecca_trace_debug || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _use_aac_encoder || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _wheel_raw_data || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _wheel_app_data || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _accel_data || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _orient_me_not || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _shake_data || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _hold3beep || Halt and wait for JTAG in C_exception_handler. Probably. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _skipgamedrm || Seemingly allows Manifest.plist.p7b to not be present when reading eApps/games. If present, will still be checked. || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _firewire_supported || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _debug_db || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _EQBiasScale || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainDB || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQ_HPF_Fc || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _SpeakerEQPreset || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _RecorderGainLimit || Contents read. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _6bits_accel || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_bpfix || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_events_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_buffer_time_show || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_readings_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_raw_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_metadata_parsed_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_scan_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_auto_scan || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_softmute_disable || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _tuner_hicut_disable || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hifi_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _no_look_ahead_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _look_ahead_video_encoding || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _bvtpowertest || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_clock_gating || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _writerawyuvstills || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_10x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _power_testing || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_xyz_logging || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_heartbeat || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_100x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _ped_time_1000x || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _log_sys_model || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _fm_fieldtesting || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _nand_high_clock || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit || || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _show_max_battery || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_fixed_time || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _photo_albums_test || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _show_pll || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _hang_frame_drop || || ✔️&lt;br /&gt;
|-&lt;br /&gt;
| _disable_overlay_limit || _enable_options not required. || ✔️ (Unused?)&lt;br /&gt;
|-&lt;br /&gt;
| _quick_3bits || _enable_options not required. || ✔️ (Unused?)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22129</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22129"/>
		<updated>2025-06-21T15:42:13Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: wrap usb ids in code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (2nd generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1260&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1220&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1240&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (3rd generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1262&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;1224&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1242&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (4th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1263&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1225&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1243&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (5th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1265&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1231&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1246&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (6th generation)&lt;br /&gt;
| &amp;lt;code&amp;gt;1266&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1232&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1248&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | iPod nano (7th generation)&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1267&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1249&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| &amp;lt;code&amp;gt;124a&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1261&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | &amp;lt;code&amp;gt;1223&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1241&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| &amp;lt;code&amp;gt;1245&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev B&lt;br /&gt;
| &amp;lt;code&amp;gt;1247&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| &amp;lt;code&amp;gt;1250&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22128</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22128"/>
		<updated>2025-06-21T15:38:24Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: fix classic WTF pids&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (2nd generation)&lt;br /&gt;
| 1260&lt;br /&gt;
| 1220&lt;br /&gt;
| 1240&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (3rd generation)&lt;br /&gt;
| 1262&lt;br /&gt;
| 1223/1224&lt;br /&gt;
| 1242&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (4th generation)&lt;br /&gt;
| 1263&lt;br /&gt;
| 1225&lt;br /&gt;
| 1243&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (5th generation)&lt;br /&gt;
| 1265&lt;br /&gt;
| 1231&lt;br /&gt;
| 1246&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (6th generation)&lt;br /&gt;
| 1266&lt;br /&gt;
| 1232&lt;br /&gt;
| 1248&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | iPod nano (7th generation)&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1267&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1234&lt;br /&gt;
| 1249&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| 124a&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | 1261&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | 1223&lt;br /&gt;
| 1241&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| 1245&lt;br /&gt;
|-&lt;br /&gt;
| Rev B&lt;br /&gt;
| 1247&lt;br /&gt;
|-&lt;br /&gt;
| Rev C&lt;br /&gt;
| 1250&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22127</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22127"/>
		<updated>2025-06-21T15:36:26Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: use proper revision names for classic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (2nd generation)&lt;br /&gt;
| 1260&lt;br /&gt;
| 1220&lt;br /&gt;
| 1240&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (3rd generation)&lt;br /&gt;
| 1262&lt;br /&gt;
| 1223/1224&lt;br /&gt;
| 1242&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (4th generation)&lt;br /&gt;
| 1263&lt;br /&gt;
| 1225&lt;br /&gt;
| 1243&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (5th generation)&lt;br /&gt;
| 1265&lt;br /&gt;
| 1231&lt;br /&gt;
| 1246&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (6th generation)&lt;br /&gt;
| 1266&lt;br /&gt;
| 1232&lt;br /&gt;
| 1248&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | iPod nano (7th generation)&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1267&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1234&lt;br /&gt;
| 1249&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| 124a&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| Initial&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 1261&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 1223&lt;br /&gt;
| 1241&lt;br /&gt;
|-&lt;br /&gt;
| Rev A&lt;br /&gt;
| 1245&lt;br /&gt;
|-&lt;br /&gt;
| Rev B/Rev C&lt;br /&gt;
| 1247&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Contributing&amp;diff=22125</id>
		<title>Contributing</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Contributing&amp;diff=22125"/>
		<updated>2025-06-21T04:41:29Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: we now have code execution on nano&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first question people generally ask about this project is, &amp;quot;How can I help out?&amp;quot;. Here are some ways someone can be useful to the project:&lt;br /&gt;
&lt;br /&gt;
==Developing==&lt;br /&gt;
This is perhaps the most valuable way one can help the project. We get many people who want to help with development but they don&#039;t have the necessary skills. If you don&#039;t, think of it as an opportunity to learn new and worthwhile skills instead of a roadblock. After all, the best way to learn is in the field doing real work. Here are some topics that developers need to know about:&lt;br /&gt;
*&#039;&#039;&#039;ARM assembly&#039;&#039;&#039; - this is probably the hardest topic for beginners to grasp. Resources:&lt;br /&gt;
**[http://simplemachines.it/doc/arm_inst.pdf an ARM primer]&lt;br /&gt;
**[http://simplemachines.it/doc/QRC0001H_rvct_v2.1_arm.pdf ARM Quick Ref]&lt;br /&gt;
**[http://www.lysator.liu.se/~kjell-e/embedded/ARM-ARM.pdf ARM ARM]&lt;br /&gt;
**http://simplemachines.it has great resources for learning ARM&lt;br /&gt;
*&#039;&#039;&#039;Rust&#039;&#039;&#039; and &#039;&#039;&#039;C&#039;&#039;&#039; - Used whenever we can avoid using ARM assembly.&lt;br /&gt;
*&#039;&#039;&#039;Go&#039;&#039;&#039; and &#039;&#039;&#039;Python&#039;&#039;&#039; - Used to implement host-side software like wInd3x and bits of EMcore/Rockbox/...&lt;br /&gt;
&lt;br /&gt;
==Vulnerabilities==&lt;br /&gt;
If you&#039;ve ever found a way to get your iPod to crash by corrupting things or inputting weird things, we could use the info to see if the bug is a vulnerability. Some examples of bugs like this are the [[Notes vulnerability]] and the [[Pwnage 2.0]] vulnerability. [[OSOS]] bugs in any releases are also appreciated, as they might allow to potentially untether [[wInd3x]].&lt;br /&gt;
&lt;br /&gt;
If you find any bug, report it via IRC.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
&lt;br /&gt;
We need an open-source reimplementation of the [[Nano2G FTL|Samsung Whimory FTL]] used in S5L-based iPods. This will allow us to access the FAT/HFS partition on NAND from any open source software. The FTL is a complex piece of software, and it needs a high-quality, clean-room implementation for reliable read/write access.&lt;br /&gt;
&lt;br /&gt;
==Writing guides==&lt;br /&gt;
Another way to help out is writing guides like these on the Wiki. Make it easier for new users to get information.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
Testers are always good to have, and its also a good way to help out if you don&#039;t want to spend much time on the project or don&#039;t know much about development. Developers, however, will get tired of working with you if you are clueless about how everything works, so make sure you have a good understanding about the tools you&#039;re testing.&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS&amp;diff=22124</id>
		<title>RetailOS</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS&amp;diff=22124"/>
		<updated>2025-06-21T04:39:46Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: update display title to retailOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:retailOS}}&lt;br /&gt;
The stock operating system running on non-iOS iPods. It runs everything from device drivers to the clickwheel user interface.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
The only &#039;official&#039; name seems to be &#039;retailOS&#039;, found in the [[Nano 3G]] WTF. It is also referred to as &#039;osos&#039; per the file name in the resource partition of the firmware bundle.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
retailOS is a small, embedded, single-user, single-binary, real time operating system. With time it acquire more and more complex functionality, like PowerVR drivers and being able to load external applications (&#039;eApps&#039;) which are used for games.&lt;br /&gt;
&lt;br /&gt;
The core of the system is based on RTXC 3.2, with the end-user interface based on intellectual property from a company called Pixo. &amp;lt;ref&amp;gt;https://web.archive.org/web/20230224105131/https://twitter.com/johnwhitley/status/1451952369248264201&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
As evidenced by the success of the [[Notes vulnerability]] and [[ipod_sun]], retailOS has no security hardening, and in fact all processes, including games, seem to be running in ARM system mode.&lt;br /&gt;
&lt;br /&gt;
=== Boot chain ===&lt;br /&gt;
&lt;br /&gt;
retailOS is loaded by the second-stage bootloader (stored on NOR/NAND depending on the device generation), from NAND into DRAM.&lt;br /&gt;
&lt;br /&gt;
While other stages of the boot chain (eg. the bootloader, WTF mode in newer devices, the diagnostics tool) are based around EFI firmware volumes and an EFI runtime, retailOS is a single binary blob without any built-in modularity.&lt;br /&gt;
&lt;br /&gt;
=== eApp Signing ===&lt;br /&gt;
&lt;br /&gt;
Not yet documented fully. Each game seems to ship with a Manifest.plist.p7p which is a PKCS#7 signature for the main Manifest.plist.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
We have found some &#039;secret&#039; options that can be set by creating specially named files. See [[RetailOS_Options|Options]].&lt;br /&gt;
&lt;br /&gt;
== Analysis / Memory Layout ==&lt;br /&gt;
&lt;br /&gt;
Loading RetailOS correctly into a decompiler/disassembler is tricky, as the contents of the IMG1 image are a binary blob which self-relocates to the correct places in memory.&lt;br /&gt;
&lt;br /&gt;
These are the memory segments within RetailOS that we know of (at least on Nano 5G):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Marker !! Location in memory !! Description&lt;br /&gt;
|-&lt;br /&gt;
| sram.text || n/a || SRAM 0x22000000 || SRAM-resident code, most of RTXC lives here.&lt;br /&gt;
|-&lt;br /&gt;
| sram.bss || n/a || SRAM 0x22030000 || SRAM-resident zero data.&lt;br /&gt;
|-&lt;br /&gt;
| sram.data || n/a || SRAM 0x22030000 + sram_bss_size || SRAM-resident data.&lt;br /&gt;
|-&lt;br /&gt;
| dram.textdata || hibe || DRAM 0x08000000 || Combined .text and .data which lives in DRAM. Bulk of code lives here.&lt;br /&gt;
|-&lt;br /&gt;
| dram.frameworks || miscTBD || DRAM 0x08000000 + dram_textdata_size || &#039;Framework&#039; system of some kind, interfaces used by eApps.&lt;br /&gt;
|-&lt;br /&gt;
| dram.bss || n/a || DRAM 0x08000000 + dram_textdata_size + dram_frameworks_size || DRAM-resident zero data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And here&#039;s how the segments are built up within the RetailOS binary blob:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Name !! Size&lt;br /&gt;
|-&lt;br /&gt;
| Start || sram.text || sram_text_size&lt;br /&gt;
|-&lt;br /&gt;
| || sram.bss || sram_bss_size&lt;br /&gt;
|-&lt;br /&gt;
| || sram.data || sram_data_size&lt;br /&gt;
|-&lt;br /&gt;
| || dram.text || dram_text_size&lt;br /&gt;
|-&lt;br /&gt;
| End || dram.frameworks || dram_frameworks_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(yes, the firmware blob ships a sram.bss physically in the file)&lt;br /&gt;
&lt;br /&gt;
So the goal to be able to load the binary is to figure out the segment sizes and then load them into a decompiler/disassembler. &lt;br /&gt;
&lt;br /&gt;
Here, we&#039;ll show how to figure out the segment sizes for N5G. First, load the RetailOS body (without the header!) at 0x22000000 in a decompiler. We load it there (intead of into DRAM as it is done on the device) as the stub relocates to this address first by performing the SRAM .text/.data copies very early in the process, and the code is position independent for only a short time.&lt;br /&gt;
&lt;br /&gt;
Then, look at the start function (follow the reset vector):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void start(void) { // 0x2200505c&lt;br /&gt;
    offs = relocation_offset();&lt;br /&gt;
    /* ... peeks/pokes to bus matrix periph at 0x3ff00000 ... */&lt;br /&gt;
    if (offs != 0) {&lt;br /&gt;
        relocate(offs);&lt;br /&gt;
    }&lt;br /&gt;
    (*0x22000000) = 0xea000007;&lt;br /&gt;
    zero_bss();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
relocation_offset will return 0 if the stub is already at 0x22000000, so will return 0 for the way we&#039;ve loaded it. On a real device, this will be 0x22000000 - 0x08000000 ==&lt;br /&gt;
0x1a000000, as the real device loads RetailOS into DRAM first. Thus, relocate() will be called:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void relocate(int offs) { // 0x22005ec8&lt;br /&gt;
  int iVar1 = -offs;&lt;br /&gt;
  void *blob_start = iVar1 + 0x22000000;&lt;br /&gt;
  memmove(0x22000000, blob_start, 0xe27c); // copy sram.text&lt;br /&gt;
  memzero(0x22000000 + 0xe27c, 0xbc4); // zero out sram.bss within blob&lt;br /&gt;
  memmove(0x22030000, 0x22000000 + 0xe27c + iVar1, 0x20000); // copy sram.bss + sram.data&lt;br /&gt;
  jump_offset(offs);&lt;br /&gt;
  memmove(0x08000000, 0x22000000 + 0xe27c + 0x20000 + iVar1, 0x6c3768); // copy dram.textdata&lt;br /&gt;
  memmove(0x08000000 + 0x6c3768, iVar1 + 0x22000000 + 0xe27c + 0x20000 + 0x6c3768), 0xc40); // copy dram.frameworks&lt;br /&gt;
  start();&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above listing shows reconstituted address calculations - in a plain decompilation, all the additions will of course be simplified to a single constant. But you should be able to figure out the following:&lt;br /&gt;
&lt;br /&gt;
# sram_text_size is 0xe27c&lt;br /&gt;
# sram_bss_size is 0xbc4&lt;br /&gt;
# sram_bss_size + sram_data_size is 0x20000&lt;br /&gt;
# dram_textdata_size is 0x6c3768&lt;br /&gt;
# dram_frameworks_size is 0xc40&lt;br /&gt;
&lt;br /&gt;
Then, in zero_bss we can find the size of dram.bss:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void zero_bss(void) { // 0x22005fec&lt;br /&gt;
    memzero(0x2200e27c, 0xbc4); // zero out sram.bss&lt;br /&gt;
    // inlined memzero:&lt;br /&gt;
    void *start = 0x08000000 + 0x6c3768 + 0xc40;&lt;br /&gt;
    int size = 0x790a84;&lt;br /&gt;
    // ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From which we can figure out that the dram.bss segment size is 0x790a84.&lt;br /&gt;
&lt;br /&gt;
Thus we can load the file like so (combining sram.bss and sram.data) into a &#039;clean&#039; decompiler/disassembler session:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Memory Address !! File Offset&lt;br /&gt;
|-&lt;br /&gt;
| sram.text || 0x22000000 || 0x00000000&lt;br /&gt;
|-&lt;br /&gt;
| sram.bssdata || 0x22030000 || 0x0000e27c&lt;br /&gt;
|-&lt;br /&gt;
| dram.textdata || 0x08000000 || 0x0002e27c (0xe27c + 0x20000)&lt;br /&gt;
|-&lt;br /&gt;
| dram.frameworks || 0x086c3768 || 0x006f19e4 (0xe27c + 0x20000 + 0x6c3768)&lt;br /&gt;
|-&lt;br /&gt;
| dram.bss || 0x086c43a || n/a (0x790a84 zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Writing an automated converter into ELF from arbitrary RetailOS blobs is an exercise left to the reader.&lt;br /&gt;
&lt;br /&gt;
== RTXC == &lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
This seems to be the best public document available about RTXC 3.2: [https://web.archive.org/web/20230218212424/https://datasheet.datasheetarchive.com/originals/library/Datasheets-AS2/DSAAXSA0003458.pdf DSAAXSA0003458.pdf]. It contains example code for most services, but unfortunately is still missing any structure definitions.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also some training slides available: [https://ia801800.us.archive.org/26/items/manualzilla-id-5752851/5752851.pdf 5752851.pdf]. These introduce the general architecture and concept of RTXC 3.2. &lt;br /&gt;
&lt;br /&gt;
=== Services / Syscalls ===&lt;br /&gt;
&lt;br /&gt;
While RTXC documentation speaks mostly of &#039;kernel services&#039; (which are defined as C function signatures/symbols), we like to talk about &#039;syscalls&#039; and &#039;syscall numbers&#039; when reverse engineering retailOS. All service functions go through a central dispatch function and that&#039;s the easiest point to start reverse engineering the kernel service interface.&lt;br /&gt;
&lt;br /&gt;
The dispatcher receives a saved caller state which contains a pointer to a serialized syscall request in its saved R0. The syscall request is a trivial structure containing a syscall number and arguments. The dispatcher is executed with interrupts enabled (and thus is non-preemptable) and performs actual work on kernel structures. There is no privilege-granting &#039;gate&#039; mechanism, all caller code is just as privileged as the kernel code.&lt;br /&gt;
&lt;br /&gt;
Service functions in turn prepare the syscall request structure (including syscall number), and then call an intermediary state saving function which then calls the dispatcher after disabling interrupts. Some syscall numbers are used by multiple service functions, with some extra arguments in the request being used to decide on the behaviour of the service call (eg. blocking/nonblocking).&lt;br /&gt;
&lt;br /&gt;
The following table comes from cross-referencing retailOS, publicly available RTXC PDFs and publicly availble RTXC binaries with debug symbols.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_pend(SEMA sema)&amp;lt;/code&amp;gt; || 0x03 || Semaphore DONE -&amp;gt; PENDING.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RTXCMSG *KS_receive(MBOX mailbox, TASK  task)&amp;lt;/code&amp;gt; || 0x05 || Receive from mailbox.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_enqueue[w](QUEUE queue, void *entry)&amp;lt;/code&amp;gt; || 0x0c || Push into FIFO (and block if full with &#039;w&#039; variant).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_dequeue[w](QUEUE queue, void *dest)&amp;lt;/code&amp;gt; || 0x0d || Pop from FIFO (and block if empty with &#039;w&#039; variant).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_lock(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x0e || Lock a resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_lockt(RESOURCE resource, TICKS timoeut)&amp;lt;/code&amp;gt; || 0x0e || Lock a resource with timeout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_unlock(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x0f || Unlock an owned resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CLKBLK *KS_alloc_timer(void)&amp;lt;/code&amp;gt; || 0x10 || Allocate next free timer from pool.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CLKBLK *KS_start_timer(CLKBLK *timer, TICKS initial_period, TICKS cycle_time, SEMA sema)&amp;lt;/code&amp;gt; || 0x12 || Start timer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_stop_timer(CLKBLK *timer)&amp;lt;/code&amp;gt; || 0x13 || Stop timer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_delay(TASK task, TICKS period)&amp;lt;/code&amp;gt; || 0x14 || Block specified task for a period of time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_execute(TASK task)&amp;lt;/code&amp;gt; || 0x15 || Start a task from its beginning address.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_deftask(TASK task, PRIORITY priority, char *stack, size_t stacksize, void (*entry)(void))&amp;lt;/code&amp;gt; || 0x16 || Define the attributes of an inactive task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TASK KS_alloc_task(void)&amp;lt;/code&amp;gt; || 0x17 || Allocate the next available Task Control Block from the pool of free TCBs. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_terminate(TASK task)&amp;lt;/code&amp;gt; || 0x18 || Stop a task by setting it to INACTIVE.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_suspend(TASK task)&amp;lt;/code&amp;gt; || 0x19 || Suspend a task until resumed or re-executed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_defpriority(TASK task, PRIORITY priority)&amp;lt;/code&amp;gt; || 0x1b || Define or set priority of task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_yield(void)&amp;lt;/code&amp;gt; || 0x1c || Voluntary release of control to any other task of the same priority.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SEMA KS_waitm(SEMA *semalist)&amp;lt;/code&amp;gt; || 0x22 || Wait on multiple semaphores.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;time_t KS_inqtime(void)&amp;lt;/code&amp;gt; || 0x24 || Get current time-of-day.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_deftime(time_t time)&amp;lt;/code&amp;gt; || 0x25 || Set current time-of-day.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TASK KS_inqres(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x26 || Get owner of resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_defres(RESOURCE resource, RESATTR condition)&amp;lt;/code&amp;gt; || 0x27 || Define priority inversion on resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void *KS_inqtask_arg(TASK task)&amp;lt;/code&amp;gt; || 0x28 || Get environment arguments of task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_deftask_arg(TASK task, void *arg)&amp;lt;/code&amp;gt; || 0x29 || Set environment arguments for task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_defqueue(QUEUE queue, size_t width, int depth, void *body, int currsize)&amp;lt;/code&amp;gt; || 0x2e || Define queue.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;int KS_user(int (*func) (void *), void *arg)&amp;lt;/code&amp;gt; || 0x30 || Execute function as if it were kernel service.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The RTXC memory allocation facilities (&amp;lt;code&amp;gt;KS_alloc/free/create_part/alloc_part/defpart/free_part&amp;lt;/code&amp;gt;) are &#039;&#039;not&#039;&#039; used by retailOS and not built into the service dispatcher, at least on [[Nano 5G]].&lt;br /&gt;
&lt;br /&gt;
=== Semaphores ===&lt;br /&gt;
&lt;br /&gt;
The following semaphores are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || &amp;lt;code&amp;gt;S_FW_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || &amp;lt;code&amp;gt;S_BAT_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || &amp;lt;code&amp;gt;S_USB_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || &amp;lt;code&amp;gt;S_CNA_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || &amp;lt;code&amp;gt;S_WHEEL_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || &amp;lt;code&amp;gt;S_DISKMGRQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || &amp;lt;code&amp;gt;S_TOPPLUG_SWITCH&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || &amp;lt;code&amp;gt;S_RTCTIMERMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || &amp;lt;code&amp;gt;S_ALARM_01&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0a || &amp;lt;code&amp;gt;S_ALARM_02&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0b || &amp;lt;code&amp;gt;S_ALARM_03&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0c || &amp;lt;code&amp;gt;S_WATCHDOG&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0d || &amp;lt;code&amp;gt;S_CPUMGRQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0e || &amp;lt;code&amp;gt;S_PCFPOWERMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0f || &amp;lt;code&amp;gt;S_POWER_STATE_AC&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || &amp;lt;code&amp;gt;S_CGR_STATE_TMR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || &amp;lt;code&amp;gt;S_DEEPSLEEP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || &amp;lt;code&amp;gt;S_ALARM_DONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || &amp;lt;code&amp;gt;S_PIEZOMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || &amp;lt;code&amp;gt;S_PIEZOMGRSNDR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || &amp;lt;code&amp;gt;S_PIEZODONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || &amp;lt;code&amp;gt;S_ACCPOWER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || &amp;lt;code&amp;gt;S_ACC_REINIT&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || &amp;lt;code&amp;gt;S_TOPPLUGSENSER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || &amp;lt;code&amp;gt;S_TOPPLUGCHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1a || &amp;lt;code&amp;gt;S_BTMCONNECT&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1b || &amp;lt;code&amp;gt;S_BTMPLUGCHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1c || &amp;lt;code&amp;gt;S_BTMREVERIFY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1d || &amp;lt;code&amp;gt;S_BTMREVERTIMED&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1e || &amp;lt;code&amp;gt;S_BTMVERCOMP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1f || &amp;lt;code&amp;gt;S_TOPACCPKTRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || &amp;lt;code&amp;gt;S_BTMACCPKTRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || &amp;lt;code&amp;gt;S_SERIALIDRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || &amp;lt;code&amp;gt;S_UARTATXEMPTY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || &amp;lt;code&amp;gt;S_UARTBTXEMPTY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || &amp;lt;code&amp;gt;S_HDDSCANCOMP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || &amp;lt;code&amp;gt;S_BL_ON&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || &amp;lt;code&amp;gt;S_BL_OFF&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || &amp;lt;code&amp;gt;S_BL_RAMPDOWN&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || &amp;lt;code&amp;gt;S_BL_RAMPUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || &amp;lt;code&amp;gt;S_BL_TIMESUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2a || &amp;lt;code&amp;gt;S_BATT_TIMESUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2b || &amp;lt;code&amp;gt;S_BATT_AC_PWR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2c || &amp;lt;code&amp;gt;S_BATT_TMR_RST&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2d || &amp;lt;code&amp;gt;S_GRAPHMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2e || &amp;lt;code&amp;gt;S_VBL&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2f || &amp;lt;code&amp;gt;S_DTVRECOVERY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || &amp;lt;code&amp;gt;S_CM_HEADPHONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || &amp;lt;code&amp;gt;S_CM_EXTPOWER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || &amp;lt;code&amp;gt;S_CM_ACCATTACHED&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || &amp;lt;code&amp;gt;S_CM_DAC_SETUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || &amp;lt;code&amp;gt;S_ATAWRKLPRDY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || &amp;lt;code&amp;gt;S_RTXCBUG&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || &amp;lt;code&amp;gt;S_BLOCKDEVICE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || &amp;lt;code&amp;gt;S_BLOCKDEVICEQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || &amp;lt;code&amp;gt;S_DISPLAY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || &amp;lt;code&amp;gt;S_ARB_READY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3a || &amp;lt;code&amp;gt;S_I2C_DONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3b || &amp;lt;code&amp;gt;S_VSYNC&amp;lt;/code&amp;gt; || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are three more semaphores (0x3c, 0x3d, 0x3e) that have no name defined and are likely unused. Anything 0x3f and up is a &#039;Dynamic&#039; semaphore defined at runtime (which we haven&#039;t reversed yet).&lt;br /&gt;
&lt;br /&gt;
=== Queues ===&lt;br /&gt;
&lt;br /&gt;
The following queues are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || PIXORESQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || PIXOSEMAQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || POSIXRESQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POSIXSEMAQ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mailboxes ===&lt;br /&gt;
&lt;br /&gt;
The following mailboxes are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || M_DISKMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || M_PIEZOMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || M_GRAPHMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || M_BLOCKDEVICE ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || M_DISPLAY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
The following lockable resources are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || GPIO_REG_WRITE ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || GPIO_INT_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || RTC_TIME_ADJUST ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RTC_ALARM_ADJUST ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || I2C_MASTER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || USB_GRANT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || USB_RESP_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || USB_RESPONDER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DISKPWRMGRSEND ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0a || PIEZOMGRSEND ||&lt;br /&gt;
|- &lt;br /&gt;
| 0x0b || SERIALVERIFIER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0c || RESISTORVERIFIER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0d || FW_IRAM ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0e || ACCPOWER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0f || UARTA ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UARGB ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || PMU_LOCK ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || ADC_LOCK ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || DTV_ENC_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || BACKLIGHT ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://web.archive.org/web/19990220054659/http://www.rtxc.com/Products/RTXC/Services.htm RTXC Kernel Services (1999)]&lt;br /&gt;
* [https://archive.org/details/manualzilla-id-5752851 RTXC 3.2 Training Manual]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=RetailOS&amp;diff=22123</id>
		<title>RetailOS</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=RetailOS&amp;diff=22123"/>
		<updated>2025-06-21T04:39:24Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: /* Security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The stock operating system running on non-iOS iPods. It runs everything from device drivers to the clickwheel user interface.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
The only &#039;official&#039; name seems to be &#039;retailOS&#039;, found in the [[Nano 3G]] WTF. It is also referred to as &#039;osos&#039; per the file name in the resource partition of the firmware bundle.&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
retailOS is a small, embedded, single-user, single-binary, real time operating system. With time it acquire more and more complex functionality, like PowerVR drivers and being able to load external applications (&#039;eApps&#039;) which are used for games.&lt;br /&gt;
&lt;br /&gt;
The core of the system is based on RTXC 3.2, with the end-user interface based on intellectual property from a company called Pixo. &amp;lt;ref&amp;gt;https://web.archive.org/web/20230224105131/https://twitter.com/johnwhitley/status/1451952369248264201&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
As evidenced by the success of the [[Notes vulnerability]] and [[ipod_sun]], retailOS has no security hardening, and in fact all processes, including games, seem to be running in ARM system mode.&lt;br /&gt;
&lt;br /&gt;
=== Boot chain ===&lt;br /&gt;
&lt;br /&gt;
retailOS is loaded by the second-stage bootloader (stored on NOR/NAND depending on the device generation), from NAND into DRAM.&lt;br /&gt;
&lt;br /&gt;
While other stages of the boot chain (eg. the bootloader, WTF mode in newer devices, the diagnostics tool) are based around EFI firmware volumes and an EFI runtime, retailOS is a single binary blob without any built-in modularity.&lt;br /&gt;
&lt;br /&gt;
=== eApp Signing ===&lt;br /&gt;
&lt;br /&gt;
Not yet documented fully. Each game seems to ship with a Manifest.plist.p7p which is a PKCS#7 signature for the main Manifest.plist.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
We have found some &#039;secret&#039; options that can be set by creating specially named files. See [[RetailOS_Options|Options]].&lt;br /&gt;
&lt;br /&gt;
== Analysis / Memory Layout ==&lt;br /&gt;
&lt;br /&gt;
Loading RetailOS correctly into a decompiler/disassembler is tricky, as the contents of the IMG1 image are a binary blob which self-relocates to the correct places in memory.&lt;br /&gt;
&lt;br /&gt;
These are the memory segments within RetailOS that we know of (at least on Nano 5G):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Marker !! Location in memory !! Description&lt;br /&gt;
|-&lt;br /&gt;
| sram.text || n/a || SRAM 0x22000000 || SRAM-resident code, most of RTXC lives here.&lt;br /&gt;
|-&lt;br /&gt;
| sram.bss || n/a || SRAM 0x22030000 || SRAM-resident zero data.&lt;br /&gt;
|-&lt;br /&gt;
| sram.data || n/a || SRAM 0x22030000 + sram_bss_size || SRAM-resident data.&lt;br /&gt;
|-&lt;br /&gt;
| dram.textdata || hibe || DRAM 0x08000000 || Combined .text and .data which lives in DRAM. Bulk of code lives here.&lt;br /&gt;
|-&lt;br /&gt;
| dram.frameworks || miscTBD || DRAM 0x08000000 + dram_textdata_size || &#039;Framework&#039; system of some kind, interfaces used by eApps.&lt;br /&gt;
|-&lt;br /&gt;
| dram.bss || n/a || DRAM 0x08000000 + dram_textdata_size + dram_frameworks_size || DRAM-resident zero data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And here&#039;s how the segments are built up within the RetailOS binary blob:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address !! Name !! Size&lt;br /&gt;
|-&lt;br /&gt;
| Start || sram.text || sram_text_size&lt;br /&gt;
|-&lt;br /&gt;
| || sram.bss || sram_bss_size&lt;br /&gt;
|-&lt;br /&gt;
| || sram.data || sram_data_size&lt;br /&gt;
|-&lt;br /&gt;
| || dram.text || dram_text_size&lt;br /&gt;
|-&lt;br /&gt;
| End || dram.frameworks || dram_frameworks_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(yes, the firmware blob ships a sram.bss physically in the file)&lt;br /&gt;
&lt;br /&gt;
So the goal to be able to load the binary is to figure out the segment sizes and then load them into a decompiler/disassembler. &lt;br /&gt;
&lt;br /&gt;
Here, we&#039;ll show how to figure out the segment sizes for N5G. First, load the RetailOS body (without the header!) at 0x22000000 in a decompiler. We load it there (intead of into DRAM as it is done on the device) as the stub relocates to this address first by performing the SRAM .text/.data copies very early in the process, and the code is position independent for only a short time.&lt;br /&gt;
&lt;br /&gt;
Then, look at the start function (follow the reset vector):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void start(void) { // 0x2200505c&lt;br /&gt;
    offs = relocation_offset();&lt;br /&gt;
    /* ... peeks/pokes to bus matrix periph at 0x3ff00000 ... */&lt;br /&gt;
    if (offs != 0) {&lt;br /&gt;
        relocate(offs);&lt;br /&gt;
    }&lt;br /&gt;
    (*0x22000000) = 0xea000007;&lt;br /&gt;
    zero_bss();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
relocation_offset will return 0 if the stub is already at 0x22000000, so will return 0 for the way we&#039;ve loaded it. On a real device, this will be 0x22000000 - 0x08000000 ==&lt;br /&gt;
0x1a000000, as the real device loads RetailOS into DRAM first. Thus, relocate() will be called:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void relocate(int offs) { // 0x22005ec8&lt;br /&gt;
  int iVar1 = -offs;&lt;br /&gt;
  void *blob_start = iVar1 + 0x22000000;&lt;br /&gt;
  memmove(0x22000000, blob_start, 0xe27c); // copy sram.text&lt;br /&gt;
  memzero(0x22000000 + 0xe27c, 0xbc4); // zero out sram.bss within blob&lt;br /&gt;
  memmove(0x22030000, 0x22000000 + 0xe27c + iVar1, 0x20000); // copy sram.bss + sram.data&lt;br /&gt;
  jump_offset(offs);&lt;br /&gt;
  memmove(0x08000000, 0x22000000 + 0xe27c + 0x20000 + iVar1, 0x6c3768); // copy dram.textdata&lt;br /&gt;
  memmove(0x08000000 + 0x6c3768, iVar1 + 0x22000000 + 0xe27c + 0x20000 + 0x6c3768), 0xc40); // copy dram.frameworks&lt;br /&gt;
  start();&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above listing shows reconstituted address calculations - in a plain decompilation, all the additions will of course be simplified to a single constant. But you should be able to figure out the following:&lt;br /&gt;
&lt;br /&gt;
# sram_text_size is 0xe27c&lt;br /&gt;
# sram_bss_size is 0xbc4&lt;br /&gt;
# sram_bss_size + sram_data_size is 0x20000&lt;br /&gt;
# dram_textdata_size is 0x6c3768&lt;br /&gt;
# dram_frameworks_size is 0xc40&lt;br /&gt;
&lt;br /&gt;
Then, in zero_bss we can find the size of dram.bss:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void zero_bss(void) { // 0x22005fec&lt;br /&gt;
    memzero(0x2200e27c, 0xbc4); // zero out sram.bss&lt;br /&gt;
    // inlined memzero:&lt;br /&gt;
    void *start = 0x08000000 + 0x6c3768 + 0xc40;&lt;br /&gt;
    int size = 0x790a84;&lt;br /&gt;
    // ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From which we can figure out that the dram.bss segment size is 0x790a84.&lt;br /&gt;
&lt;br /&gt;
Thus we can load the file like so (combining sram.bss and sram.data) into a &#039;clean&#039; decompiler/disassembler session:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Memory Address !! File Offset&lt;br /&gt;
|-&lt;br /&gt;
| sram.text || 0x22000000 || 0x00000000&lt;br /&gt;
|-&lt;br /&gt;
| sram.bssdata || 0x22030000 || 0x0000e27c&lt;br /&gt;
|-&lt;br /&gt;
| dram.textdata || 0x08000000 || 0x0002e27c (0xe27c + 0x20000)&lt;br /&gt;
|-&lt;br /&gt;
| dram.frameworks || 0x086c3768 || 0x006f19e4 (0xe27c + 0x20000 + 0x6c3768)&lt;br /&gt;
|-&lt;br /&gt;
| dram.bss || 0x086c43a || n/a (0x790a84 zeroes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Writing an automated converter into ELF from arbitrary RetailOS blobs is an exercise left to the reader.&lt;br /&gt;
&lt;br /&gt;
== RTXC == &lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
This seems to be the best public document available about RTXC 3.2: [https://web.archive.org/web/20230218212424/https://datasheet.datasheetarchive.com/originals/library/Datasheets-AS2/DSAAXSA0003458.pdf DSAAXSA0003458.pdf]. It contains example code for most services, but unfortunately is still missing any structure definitions.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also some training slides available: [https://ia801800.us.archive.org/26/items/manualzilla-id-5752851/5752851.pdf 5752851.pdf]. These introduce the general architecture and concept of RTXC 3.2. &lt;br /&gt;
&lt;br /&gt;
=== Services / Syscalls ===&lt;br /&gt;
&lt;br /&gt;
While RTXC documentation speaks mostly of &#039;kernel services&#039; (which are defined as C function signatures/symbols), we like to talk about &#039;syscalls&#039; and &#039;syscall numbers&#039; when reverse engineering retailOS. All service functions go through a central dispatch function and that&#039;s the easiest point to start reverse engineering the kernel service interface.&lt;br /&gt;
&lt;br /&gt;
The dispatcher receives a saved caller state which contains a pointer to a serialized syscall request in its saved R0. The syscall request is a trivial structure containing a syscall number and arguments. The dispatcher is executed with interrupts enabled (and thus is non-preemptable) and performs actual work on kernel structures. There is no privilege-granting &#039;gate&#039; mechanism, all caller code is just as privileged as the kernel code.&lt;br /&gt;
&lt;br /&gt;
Service functions in turn prepare the syscall request structure (including syscall number), and then call an intermediary state saving function which then calls the dispatcher after disabling interrupts. Some syscall numbers are used by multiple service functions, with some extra arguments in the request being used to decide on the behaviour of the service call (eg. blocking/nonblocking).&lt;br /&gt;
&lt;br /&gt;
The following table comes from cross-referencing retailOS, publicly available RTXC PDFs and publicly availble RTXC binaries with debug symbols.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Number !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_pend(SEMA sema)&amp;lt;/code&amp;gt; || 0x03 || Semaphore DONE -&amp;gt; PENDING.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RTXCMSG *KS_receive(MBOX mailbox, TASK  task)&amp;lt;/code&amp;gt; || 0x05 || Receive from mailbox.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_enqueue[w](QUEUE queue, void *entry)&amp;lt;/code&amp;gt; || 0x0c || Push into FIFO (and block if full with &#039;w&#039; variant).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_dequeue[w](QUEUE queue, void *dest)&amp;lt;/code&amp;gt; || 0x0d || Pop from FIFO (and block if empty with &#039;w&#039; variant).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_lock(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x0e || Lock a resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_lockt(RESOURCE resource, TICKS timoeut)&amp;lt;/code&amp;gt; || 0x0e || Lock a resource with timeout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_unlock(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x0f || Unlock an owned resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CLKBLK *KS_alloc_timer(void)&amp;lt;/code&amp;gt; || 0x10 || Allocate next free timer from pool.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CLKBLK *KS_start_timer(CLKBLK *timer, TICKS initial_period, TICKS cycle_time, SEMA sema)&amp;lt;/code&amp;gt; || 0x12 || Start timer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_stop_timer(CLKBLK *timer)&amp;lt;/code&amp;gt; || 0x13 || Stop timer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_delay(TASK task, TICKS period)&amp;lt;/code&amp;gt; || 0x14 || Block specified task for a period of time.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_execute(TASK task)&amp;lt;/code&amp;gt; || 0x15 || Start a task from its beginning address.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_deftask(TASK task, PRIORITY priority, char *stack, size_t stacksize, void (*entry)(void))&amp;lt;/code&amp;gt; || 0x16 || Define the attributes of an inactive task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TASK KS_alloc_task(void)&amp;lt;/code&amp;gt; || 0x17 || Allocate the next available Task Control Block from the pool of free TCBs. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_terminate(TASK task)&amp;lt;/code&amp;gt; || 0x18 || Stop a task by setting it to INACTIVE.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_suspend(TASK task)&amp;lt;/code&amp;gt; || 0x19 || Suspend a task until resumed or re-executed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_defpriority(TASK task, PRIORITY priority)&amp;lt;/code&amp;gt; || 0x1b || Define or set priority of task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_yield(void)&amp;lt;/code&amp;gt; || 0x1c || Voluntary release of control to any other task of the same priority.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SEMA KS_waitm(SEMA *semalist)&amp;lt;/code&amp;gt; || 0x22 || Wait on multiple semaphores.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;time_t KS_inqtime(void)&amp;lt;/code&amp;gt; || 0x24 || Get current time-of-day.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_deftime(time_t time)&amp;lt;/code&amp;gt; || 0x25 || Set current time-of-day.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TASK KS_inqres(RESOURCE resource)&amp;lt;/code&amp;gt; || 0x26 || Get owner of resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_defres(RESOURCE resource, RESATTR condition)&amp;lt;/code&amp;gt; || 0x27 || Define priority inversion on resource.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void *KS_inqtask_arg(TASK task)&amp;lt;/code&amp;gt; || 0x28 || Get environment arguments of task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;void KS_deftask_arg(TASK task, void *arg)&amp;lt;/code&amp;gt; || 0x29 || Set environment arguments for task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KSRC KS_defqueue(QUEUE queue, size_t width, int depth, void *body, int currsize)&amp;lt;/code&amp;gt; || 0x2e || Define queue.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;int KS_user(int (*func) (void *), void *arg)&amp;lt;/code&amp;gt; || 0x30 || Execute function as if it were kernel service.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The RTXC memory allocation facilities (&amp;lt;code&amp;gt;KS_alloc/free/create_part/alloc_part/defpart/free_part&amp;lt;/code&amp;gt;) are &#039;&#039;not&#039;&#039; used by retailOS and not built into the service dispatcher, at least on [[Nano 5G]].&lt;br /&gt;
&lt;br /&gt;
=== Semaphores ===&lt;br /&gt;
&lt;br /&gt;
The following semaphores are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || &amp;lt;code&amp;gt;S_FW_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || &amp;lt;code&amp;gt;S_BAT_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || &amp;lt;code&amp;gt;S_USB_PWR_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || &amp;lt;code&amp;gt;S_CNA_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || &amp;lt;code&amp;gt;S_WHEEL_CHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || &amp;lt;code&amp;gt;S_DISKMGRQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || &amp;lt;code&amp;gt;S_TOPPLUG_SWITCH&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || &amp;lt;code&amp;gt;S_RTCTIMERMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || &amp;lt;code&amp;gt;S_ALARM_01&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0a || &amp;lt;code&amp;gt;S_ALARM_02&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0b || &amp;lt;code&amp;gt;S_ALARM_03&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0c || &amp;lt;code&amp;gt;S_WATCHDOG&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0d || &amp;lt;code&amp;gt;S_CPUMGRQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0e || &amp;lt;code&amp;gt;S_PCFPOWERMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x0f || &amp;lt;code&amp;gt;S_POWER_STATE_AC&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || &amp;lt;code&amp;gt;S_CGR_STATE_TMR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || &amp;lt;code&amp;gt;S_DEEPSLEEP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || &amp;lt;code&amp;gt;S_ALARM_DONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || &amp;lt;code&amp;gt;S_PIEZOMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || &amp;lt;code&amp;gt;S_PIEZOMGRSNDR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || &amp;lt;code&amp;gt;S_PIEZODONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || &amp;lt;code&amp;gt;S_ACCPOWER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || &amp;lt;code&amp;gt;S_ACC_REINIT&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || &amp;lt;code&amp;gt;S_TOPPLUGSENSER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || &amp;lt;code&amp;gt;S_TOPPLUGCHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1a || &amp;lt;code&amp;gt;S_BTMCONNECT&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1b || &amp;lt;code&amp;gt;S_BTMPLUGCHANGE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1c || &amp;lt;code&amp;gt;S_BTMREVERIFY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1d || &amp;lt;code&amp;gt;S_BTMREVERTIMED&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1e || &amp;lt;code&amp;gt;S_BTMVERCOMP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x1f || &amp;lt;code&amp;gt;S_TOPACCPKTRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || &amp;lt;code&amp;gt;S_BTMACCPKTRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || &amp;lt;code&amp;gt;S_SERIALIDRCVD&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || &amp;lt;code&amp;gt;S_UARTATXEMPTY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || &amp;lt;code&amp;gt;S_UARTBTXEMPTY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || &amp;lt;code&amp;gt;S_HDDSCANCOMP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || &amp;lt;code&amp;gt;S_BL_ON&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || &amp;lt;code&amp;gt;S_BL_OFF&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || &amp;lt;code&amp;gt;S_BL_RAMPDOWN&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || &amp;lt;code&amp;gt;S_BL_RAMPUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || &amp;lt;code&amp;gt;S_BL_TIMESUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2a || &amp;lt;code&amp;gt;S_BATT_TIMESUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2b || &amp;lt;code&amp;gt;S_BATT_AC_PWR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2c || &amp;lt;code&amp;gt;S_BATT_TMR_RST&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2d || &amp;lt;code&amp;gt;S_GRAPHMGR&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2e || &amp;lt;code&amp;gt;S_VBL&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x2f || &amp;lt;code&amp;gt;S_DTVRECOVERY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || &amp;lt;code&amp;gt;S_CM_HEADPHONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || &amp;lt;code&amp;gt;S_CM_EXTPOWER&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || &amp;lt;code&amp;gt;S_CM_ACCATTACHED&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || &amp;lt;code&amp;gt;S_CM_DAC_SETUP&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || &amp;lt;code&amp;gt;S_ATAWRKLPRDY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || &amp;lt;code&amp;gt;S_RTXCBUG&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || &amp;lt;code&amp;gt;S_BLOCKDEVICE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || &amp;lt;code&amp;gt;S_BLOCKDEVICEQ&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || &amp;lt;code&amp;gt;S_DISPLAY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || &amp;lt;code&amp;gt;S_ARB_READY&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3a || &amp;lt;code&amp;gt;S_I2C_DONE&amp;lt;/code&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3b || &amp;lt;code&amp;gt;S_VSYNC&amp;lt;/code&amp;gt; || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are three more semaphores (0x3c, 0x3d, 0x3e) that have no name defined and are likely unused. Anything 0x3f and up is a &#039;Dynamic&#039; semaphore defined at runtime (which we haven&#039;t reversed yet).&lt;br /&gt;
&lt;br /&gt;
=== Queues ===&lt;br /&gt;
&lt;br /&gt;
The following queues are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || PIXORESQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || PIXOSEMAQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || POSIXRESQ ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || POSIXSEMAQ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mailboxes ===&lt;br /&gt;
&lt;br /&gt;
The following mailboxes are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || M_DISKMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || M_PIEZOMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || M_GRAPHMGR ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || M_BLOCKDEVICE ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || M_DISPLAY ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
The following lockable resources are defined in the [[Nano 3G]] retailOS:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || GPIO_REG_WRITE ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || GPIO_INT_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || RTC_TIME_ADJUST ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RTC_ALARM_ADJUST ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || I2C_MASTER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || USB_GRANT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || USB_RESP_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || USB_RESPONDER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || DISKPWRMGRSEND ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0a || PIEZOMGRSEND ||&lt;br /&gt;
|- &lt;br /&gt;
| 0x0b || SERIALVERIFIER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0c || RESISTORVERIFIER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0d || FW_IRAM ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0e || ACCPOWER ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x0f || UARTA ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UARGB ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || PMU_LOCK ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || ADC_LOCK ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || DTV_ENC_INIT ||&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || BACKLIGHT ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://web.archive.org/web/19990220054659/http://www.rtxc.com/Products/RTXC/Services.htm RTXC Kernel Services (1999)]&lt;br /&gt;
* [https://archive.org/details/manualzilla-id-5752851 RTXC 3.2 Training Manual]&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Modes&amp;diff=22122</id>
		<title>Modes</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Modes&amp;diff=22122"/>
		<updated>2025-06-21T04:29:47Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: redo modes page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At any given time an iPod can be in one of several modes, some of which can be activated by holding down certain buttons while the iPod is booting.  &lt;br /&gt;
&lt;br /&gt;
==Normal mode==&lt;br /&gt;
&amp;quot;Normal mode&amp;quot; is when the iPod is booted into [[RetailOS]] normally. In this mode the iPod presents as a mass storage device to a computer, allowing files to be transferred. Receiving device information from the iPod, as well as updating the iPod&#039;s [[Firmware]], can be done from normal mode through the use of proprietary SCSI commands.&lt;br /&gt;
&lt;br /&gt;
==Disk mode==&lt;br /&gt;
In disk mode, like normal mode, the iPod presents as a mass storage device to a computer and can have its information read and firmware updated. When in disk mode, the iPod screen will display, with a black foreground and white background, either a no symbol with the text &amp;quot;Do not disconnect.&amp;quot; or a checkmark symbol with the text &amp;quot;OK to disconnect.&amp;quot; depending on whether the iPod is connected and if it has been ejected. &lt;br /&gt;
&lt;br /&gt;
Disk mode exists on all iPod models. For more information on how to enter disk mode, refer to [https://support.apple.com/kb/ht1363 this Apple support document]&lt;br /&gt;
&lt;br /&gt;
Disk mode is also referred to as &amp;quot;forced disk mode&amp;quot; in device information received from the iPod.&lt;br /&gt;
&lt;br /&gt;
The place where disk mode is stored on the device differs depending on the iPod model. On the iPod nano (4th generation) and newer, disk mode is stored in the &amp;quot;disk&amp;quot; partition of the [[Firmware]]. &lt;br /&gt;
&lt;br /&gt;
==DFU mode==&lt;br /&gt;
[https://en.wikipedia.org/wiki/Device_Firmware_Upgrade Device Firmware Upgrade], or DFU, is a standard for upgrading firmware over USB that is used by many devices, including iOS devices and newer iPods. DFU mode exists on the iPod nano (3rd generation) and newer and the iPod classic (6th generation) and newer, coinciding with Apple&#039;s switch from PortalPlayer to Samsung processors. DFU mode is contained in the on-processor BootROM. Instructions on entering DFU mode can be found [https://theapplewiki.com/wiki/DFU_Mode#iPod here].&lt;br /&gt;
&lt;br /&gt;
When in DFU mode, the iPod can be sent a special WTF [[IMG1]] firmware image to enter WTF mode. Other [[IMG1]] images cannot be sent in this mode.&lt;br /&gt;
&lt;br /&gt;
The iPod nano (2nd generation) also has a DFU mode, but it can only be entered by shorting testpoints on the iPod&#039;s circuit board or flashing the NOR with an image with an invalid signature or hash. It does support a NOR DFU mode that can be entered by holding down Back+Play right after rebooting the device.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==WTF mode==&lt;br /&gt;
In WTF mode (possibly &#039;Where&#039;s The Firmware?&#039;), the iPod will accept any [[IMG1]] image it is sent over DFU and, if signature and decryption checks pass, will attempt to boot to it. It is entered from DFU mode when a specific WTF [[IMG1]] firmware image is sent. While in WTF mode the iPod still uses the standard DFU protocol.&lt;br /&gt;
&lt;br /&gt;
The iTunes behavior upon seeing an iPod in WTF mode is to send it a &amp;quot;recovery&amp;quot; firmware image, which places the iPod in disk mode. However, any firmware image can be sent to it, including, for example, the &amp;quot;osos&amp;quot; partition from production iPod firmware, which enables tethered booting an iPod into [[RetailOS]].&lt;br /&gt;
&lt;br /&gt;
==Diagnostic mode==&lt;br /&gt;
This mode will give quite a lot of info about your iPod. Except for the very first iPods, it can be accessed by holding center and rewind when the apple logo appears during reboot.&amp;lt;sup&amp;gt;(clarification needed)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==USB IDs==&lt;br /&gt;
When connected to a computer, the iPod presents a vendor ID of 05ac (Apple Inc.) and a product ID that depends on its model and which mode it is in: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Model&lt;br /&gt;
! Normal/disk mode&lt;br /&gt;
! DFU mode&lt;br /&gt;
! WTF mode&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (2nd generation)&lt;br /&gt;
| 1260&lt;br /&gt;
| 1220&lt;br /&gt;
| 1240&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (3rd generation)&lt;br /&gt;
| 1262&lt;br /&gt;
| 1223/1224&lt;br /&gt;
| 1242&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (4th generation)&lt;br /&gt;
| 1263&lt;br /&gt;
| 1225&lt;br /&gt;
| 1243&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (5th generation)&lt;br /&gt;
| 1265&lt;br /&gt;
| 1231&lt;br /&gt;
| 1246&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | iPod nano (6th generation)&lt;br /&gt;
| 1266&lt;br /&gt;
| 1232&lt;br /&gt;
| 1248&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | iPod nano (7th generation)&lt;br /&gt;
| 2012&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1267&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 1234&lt;br /&gt;
| 1249&lt;br /&gt;
|-&lt;br /&gt;
| 2015&lt;br /&gt;
| 124a&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | iPod classic (6th generation)&lt;br /&gt;
| rev. 1&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 1261&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 1223&lt;br /&gt;
| 1241&lt;br /&gt;
|-&lt;br /&gt;
| rev. 2&lt;br /&gt;
| 1245&lt;br /&gt;
|-&lt;br /&gt;
| rev. 3&lt;br /&gt;
| 1247&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=22091</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=22091"/>
		<updated>2024-08-20T00:11:09Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: remove duplicate text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:EmCORE_Nano2G_Nano4G_Classic.jpg|280px|thumb|right|[[emCORE]] r779 on [[Nano 2G]], [[Nano 4G]] and [[Classic 2G]]]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project aimed at reverse-engineering non-iOS iPods (all models other than the Touch) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox] or Linux. Freemyipod is a relaunch of [[Linux4nano]].&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (2nd generation), iPod classic or older iPods? ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s an upstream Rockbox port for these devices. Go use that.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (3rd generation) or newer? ===&lt;br /&gt;
&lt;br /&gt;
Not much (yet) unless you&#039;re an embedded developer :).&lt;br /&gt;
&lt;br /&gt;
On the 3rd, 4th and 5th generation, we have a stable tethered exploit ([[wInd3x]]) which allows early, untethered and safe (no permanent modification) code execution. This in turn allows you to run [[U-Boot]] and an early [[Linux|Linux port]] or experiment with reverse-engineering/modifying the original firmware, [[retailOS]].&lt;br /&gt;
&lt;br /&gt;
On the 6th and 7th generation, a font parsing vulnerability (CVE-2010-1797) can be exploited with [[ipod_sun]].&lt;br /&gt;
&lt;br /&gt;
There&#039;s a set of earlier tooling ([[emCORE]]/[[emBIOS]]/[[iBugger]]) which was exploiting other vulnerabilities and was a lead-up to a port of Rockbox, but it&#039;s mostly abandoned.&lt;br /&gt;
&lt;br /&gt;
== Getting an account ==&lt;br /&gt;
Due to spambots, registration is closed. For an account contact [[User:User890104|User890104]] or [[User:Q3k|q3k]].&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2023-12-28}} - [[ipod_sun]], a tool that enables code execution on the iPod nano 6th and 7th generation, is released.&lt;br /&gt;
* {{#dateformat:2023-01-07}} - [https://social.hackerspace.pl/@q3k/109655916469636189 A preliminary U-Boot port to the Nano 5G has been developed.]&lt;br /&gt;
* {{#dateformat:2022-01-04}} - The bootrom of iPod Nano 5G was successfully dumped, and is in the process of being reverse-engineered!&lt;br /&gt;
* {{#dateformat:2021-12-31}} - An exploit named wInd3x, which exploits the latest vulnerability, is being prepared for Nano 4G and Nano 5G.&lt;br /&gt;
* {{#dateformat:2021-12-27}} - A new vulnerability was discovered in iPod Nano 4G and Nano 5G bootrom, which allows arbitrary code execution!&lt;br /&gt;
* {{#dateformat:2018-08-25}} - The website software has been updated to MediaWiki 1.31 after about 2 months of downtime.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* {{#dateformat:2016-06-17}} - The freemyipod project is becoming deprecated, as parts of the code is slowly being integrated in Rockbox. It is likely that no future development on the freemyipod project will take place. Essential parts of emCORE helped building a Rockbox bootloader for iPod Classic, and any future development will take place in the Rockbox project.&lt;br /&gt;
* {{#dateformat:2014-03-26}} - A bug that prevented [[emCORE]] installations on certain Windows configurations (getting stuck on &amp;quot;Booting UBI file...&amp;quot;), has been finally fixed! If the installation has failed for you before, you can retry it using the updated version of our tool (use the iTunes method for now).&lt;br /&gt;
* {{#dateformat:2012-01-02}} - There have been some problems with the latest release. A hotfix release ([[EmCORE_Releases/r859|r859]]) has been published to fix some of these problems. iPod nano 2g users are advised to upgrade.  See the [[EmCORE_Releases/r859|release details page]] for more information.&lt;br /&gt;
* {{#dateformat:2012-01-01}} - A new release &amp;lt;s&amp;gt;([[EmCORE_Releases/r855|r855]])&amp;lt;/s&amp;gt; is out! It includes a couple of new features, several bugfixes and a new bootmenu theme! More information on the &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|release details page]]&amp;lt;/s&amp;gt;.&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
* {{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}} - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
* {{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
* {{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
* {{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
* {{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information. Check our [[ Special:Code/freemyipod|SVN activity ]] page for the latest changes to our source code.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[ipod_sun]]&lt;br /&gt;
* [[U-Boot|U-Boot port]]&lt;br /&gt;
* [[Linux|Linux port]]&lt;br /&gt;
* Legacy:&lt;br /&gt;
** [[iBugger]]&lt;br /&gt;
** [[iLoader]]&lt;br /&gt;
** [[emCORE]]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
** [[Bootrom]]&lt;br /&gt;
** [[Boot Process]]&lt;br /&gt;
** [[Firmware decryption]]&lt;br /&gt;
** [[FTL|Flash Translation Layer]]&lt;br /&gt;
** [[RetailOS]]&lt;br /&gt;
*** [[RetailOS Options]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G HW analysis]]&lt;br /&gt;
** [[S5L8701 analysis]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
* Nano 5G&lt;br /&gt;
** [[Nano 5G|General]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
*** [[920-0614-03]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Nano 7G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=WInd3x&amp;diff=22090</id>
		<title>WInd3x</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=WInd3x&amp;diff=22090"/>
		<updated>2024-08-04T23:55:31Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: lowercase display title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wInd3x Vulnerability ==&lt;br /&gt;
{{DISPLAYTITLE:wInd3x}}&lt;br /&gt;
&lt;br /&gt;
A [[S5L8720 Bootrom|Bootrom]] vulnerability discovered and exploited by [[User:Q3k|q3k]] in December 2021. It allows code execution in the bootrom over USB.&lt;br /&gt;
&lt;br /&gt;
=== Affected Devices ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device/SoC !! Vulnerable? !! Exploited?&lt;br /&gt;
|-&lt;br /&gt;
| [[Nano 3G]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Nano 4G]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Nano 5G]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Nano 6G]] || No || &lt;br /&gt;
|-&lt;br /&gt;
| [[Nano 7G]] || No || &lt;br /&gt;
|-&lt;br /&gt;
| Classic “6G” || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| iPhone || ? ||&lt;br /&gt;
|-&lt;br /&gt;
| iPhone 3G || Yes || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running / Usage ===&lt;br /&gt;
&lt;br /&gt;
wInd3x currently allows you to:&lt;br /&gt;
&lt;br /&gt;
# Decrypt [[IMG1]] files, like [[OSOS]] or the bootloader/[[WTF]]/...&lt;br /&gt;
# Access arbitrary memory and experiment with peripherals&lt;br /&gt;
# Run unsigned DFU payloads&lt;br /&gt;
# Run an unsigned [[OSOS]] or [[U-Boot]] by first running an automatically patched [[WTF]].&lt;br /&gt;
&lt;br /&gt;
For guides, see [https://github.com/freemyipod/wInd3x github.com/freemyipod/wInd3x]&lt;br /&gt;
&lt;br /&gt;
=== Vulnerability ===&lt;br /&gt;
&lt;br /&gt;
This exploits a vulnerability in the standard SETUP packet parsing code of the bootrom, in which the wIndex parameter is not checked for bmRequest == {0x20, 0x40}, but is still used to index an array of interface/class handlers (that in the Bootrom has a length of 1).&lt;br /&gt;
&lt;br /&gt;
==== Nano 4G and 5G Exploit Chain ====&lt;br /&gt;
&lt;br /&gt;
The first requirement is to find a suitable (blx r0) instruction in the bootrom code of the device. For Nano 4G the only one such instruction is at offset 0x3b0, and for Nano 5G there is such instruction at 0x37c. We&#039;ll refer to it as X below.&lt;br /&gt;
&lt;br /&gt;
We abuse the fact that wIndex == 3 for bmRequest 0x40 treats a &#039;bytes left to sent over USB&#039; counter as a function pointer and calls it with r0 == address of SETUP. We massage the DFU mode into attempting to send us X+0x40 bytes, and failing after 0x40 bytes, thereby leaving the counter at X bytes and executing code at address X.&lt;br /&gt;
&lt;br /&gt;
Since the bootrom is mapped at offset 0x0 as well as 0x20000000 at boot, this means we execute bootrom code, and X happens to point to a &#039;blx r0&#039; instruction. This in turn causes the CPU to interpret the SETUP packet received as ARM code, because the SETUP handler is called with the SETUP packet as its argument, i.e. r0.&lt;br /&gt;
&lt;br /&gt;
We specially craft the SETUP packet to be a valid ARM branch instruction, pointing somewhere into a temporary DFU image buffer. By first sending a payload as a partial DFU image (aborting before causing a MANIFEST), we finally get up to be able to execute either 0x800 on Nano 4G or 0x400 on Nano 5G bytes of fully user controlled code.&lt;br /&gt;
&lt;br /&gt;
In that payload, we send a stub which performs some runtime changes to the DFU&#039;s data structures to a) return a different product string b) overwrite an image verification vtable entry with a function that allows unsigned images. Some SRAM is carved out by this pay&lt;br /&gt;
&lt;br /&gt;
==== Nano 3G and Classic (”6G”) ====&lt;br /&gt;
&lt;br /&gt;
With bRequestType == 0x20 and wIndex == 6 we directly jump to code execution at the SETUP packet.&lt;br /&gt;
&lt;br /&gt;
This Bootroom does not have a VTable which can be easily hooked to override functions to provide Haxed DFU functionality. However, an &#039;OnImage&#039; function pointer is present in the State structure, which we override with our own code (copied to carved out SRAM). This code reimplements the bare minimum of the hooked function, without calling any decryption/verification code on the header/body.&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Main_Page&amp;diff=22089</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Main_Page&amp;diff=22089"/>
		<updated>2024-08-04T04:58:50Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: rework :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:EmCORE_Nano2G_Nano4G_Classic.jpg|280px|thumb|right|[[emCORE]] r779 on [[Nano 2G]], [[Nano 4G]] and [[Classic 2G]]]]&lt;br /&gt;
This is the wiki for the freemyipod project. Freemyipod is a project aimed at reverse-engineering non-iOS iPods (all models other than the Touch) and creating tools and documentation so that other people can port alternative firmwares to them such as [http://www.rockbox.org rockbox] or Linux. Freemyipod is a relaunch of [[Linux4nano]].&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (2nd generation), iPod classic or older iPods? ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s an upstream Rockbox port for these devices. Go use that.&lt;br /&gt;
&lt;br /&gt;
=== What can I do with my iPod nano (3rd generation) or newer? ===&lt;br /&gt;
&lt;br /&gt;
Not much (yet) unless you&#039;re an embedded developer :).&lt;br /&gt;
&lt;br /&gt;
On the 3rd, 4th and 5th generation, we have a stable tethered exploit ([[wInd3x]]) which allows early, untethered and safe (no permanent modification) code execution on Nano 3G-5G. This in turn allows you to run [[U-Boot]] and an early [[Linux|Linux port]] or experiment with reverse-engineering/modifying the original firmware, [[retailOS]].&lt;br /&gt;
&lt;br /&gt;
On the 6th and 7th generation, a font parsing vulnerability (CVE-2010-1797) can be exploited with [[ipod_sun]].&lt;br /&gt;
&lt;br /&gt;
There&#039;s a set of earlier tooling ([[emCORE]]/[[emBIOS]]/[[iBugger]]) which was exploiting other vulnerabilities and was a lead-up to a port of Rockbox, but it&#039;s mostly abandoned.&lt;br /&gt;
&lt;br /&gt;
== Getting an account ==&lt;br /&gt;
Due to spambots, registration is closed. For an account contact [[User:User890104|User890104]] or [[User:Q3k|q3k]].&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
* {{#dateformat:2023-12-28}} - [[ipod_sun]], a tool that enables code execution on the iPod nano 6th and 7th generation, is released.&lt;br /&gt;
* {{#dateformat:2023-01-07}} - [https://social.hackerspace.pl/@q3k/109655916469636189 A preliminary U-Boot port to the Nano 5G has been developed.]&lt;br /&gt;
* {{#dateformat:2022-01-04}} - The bootrom of iPod Nano 5G was successfully dumped, and is in the process of being reverse-engineered!&lt;br /&gt;
* {{#dateformat:2021-12-31}} - An exploit named wInd3x, which exploits the latest vulnerability, is being prepared for Nano 4G and Nano 5G.&lt;br /&gt;
* {{#dateformat:2021-12-27}} - A new vulnerability was discovered in iPod Nano 4G and Nano 5G bootrom, which allows arbitrary code execution!&lt;br /&gt;
* {{#dateformat:2018-08-25}} - The website software has been updated to MediaWiki 1.31 after about 2 months of downtime.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* {{#dateformat:2016-06-17}} - The freemyipod project is becoming deprecated, as parts of the code is slowly being integrated in Rockbox. It is likely that no future development on the freemyipod project will take place. Essential parts of emCORE helped building a Rockbox bootloader for iPod Classic, and any future development will take place in the Rockbox project.&lt;br /&gt;
* {{#dateformat:2014-03-26}} - A bug that prevented [[emCORE]] installations on certain Windows configurations (getting stuck on &amp;quot;Booting UBI file...&amp;quot;), has been finally fixed! If the installation has failed for you before, you can retry it using the updated version of our tool (use the iTunes method for now).&lt;br /&gt;
* {{#dateformat:2012-01-02}} - There have been some problems with the latest release. A hotfix release ([[EmCORE_Releases/r859|r859]]) has been published to fix some of these problems. iPod nano 2g users are advised to upgrade.  See the [[EmCORE_Releases/r859|release details page]] for more information.&lt;br /&gt;
* {{#dateformat:2012-01-01}} - A new release &amp;lt;s&amp;gt;([[EmCORE_Releases/r855|r855]])&amp;lt;/s&amp;gt; is out! It includes a couple of new features, several bugfixes and a new bootmenu theme! More information on the &amp;lt;s&amp;gt;[[EmCORE_Releases/r855|release details page]]&amp;lt;/s&amp;gt;.&lt;br /&gt;
* {{#dateformat:2011-04-25}} - The [[emCORE]] kernel now runs on the iPod Touch 2G as well, thanks to the help of kleemajo. This is of course not a fully functional port yet, but we&#039;ll see how it continues. It&#039;s about the same state as the iPod Nano 4G now. /7&lt;br /&gt;
* {{#dateformat:2011-03-25}} - [[emCORE]] is replacing [[emBIOS]] completely now. Therefore [[emBIOS]] will be deprecated software as of now! All emBIOS users are advised to upgrade to emCORE including people using iLoader 0.2.2 or less. More detailed update instructions will follow!&lt;br /&gt;
* {{#dateformat:2011-01-08}} - The Rockbox port for the iPod Classic is slowly getting usable. Most of the blocking issues have been fixed. The  first-generation 160GB model still doesn&#039;t work, and some people are experiencing slightly garbled display contents.&lt;br /&gt;
* {{#dateformat:2011-01-04}} - There is an early Rockbox port for the iPod Classic! It still isn&#039;t quite usable, playback stutters etc., but if you want to play around with it, here are some quick&#039;n&#039;dirty notes on the installation procedure: [[IPod Classic iLoader Installation]]&lt;br /&gt;
* {{#dateformat:2010-11-22}} - We now have emBIOS support for the iPod classic 1g, the others might follow soon&lt;br /&gt;
* {{#dateformat:2010-08-29}} - We&#039;re proud to announce the release of [[emBIOS]] v0.1.0 and [[iLoader]] v0.2.0!&lt;br /&gt;
* {{#dateformat:2010-08-26}} - [[iLoader]], its installer and uninstaller all have been fully ported to [[emBIOS]] now. A beta release will be coming soon!&lt;br /&gt;
* {{#dateformat:2010-08-13}} - [[emBIOS]] is continually being improved and the next step is porting tools like [[iLoader]] to use it.&lt;br /&gt;
* {{#dateformat:2010-08-06}} - The wiki has now been moved to www.freemyipod.org&lt;br /&gt;
* {{#dateformat:2010-08-05}} - Recently we&#039;ve been working on a hardware abstraction project called [[emBIOS]]. Follow development [http://websvn.freemyipod.org/listing.php?repname=freemyipod&amp;amp;path=/embios/ here]&lt;br /&gt;
* {{#dateformat:2010-08-03}} - We can now access the Nano 4G accelerometer.&lt;br /&gt;
* {{#dateformat:2010-08-02}} - serpilliere managed to decrypt the NOR flash on the [[Nano 3G]].&lt;br /&gt;
* {{#dateformat:2010-08-01}} - serpilliere managed to access and dump the NOR flash on the [[Nano 3G]]. This code could possibly work on the Classics.&lt;br /&gt;
* {{#dateformat:2010-07-27}} - The server got zapped by lightning but a new one was up and running within a day.&lt;br /&gt;
* {{#dateformat:2010-02-23}} - We can now execute code on everything besides the [[Nano 5G]]! Minimalistic iBugger working on [[Nano 3G]]!&lt;br /&gt;
* {{#dateformat:2009-11-01}} - iBugger core v0.1 successfully running on [[Nano 4G]]! [http://img217.imageshack.us/img217/4122/img0969.jpg]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Follow [http://twitter.com/freemyipod our Twitter feed] to get status updates automatically. See the [[Status]] page for more detailed information. Check our [[ Special:Code/freemyipod|SVN activity ]] page for the latest changes to our source code.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Project info===&lt;br /&gt;
* [[ Status ]]&lt;br /&gt;
* [[ Contact ]]&lt;br /&gt;
* [[ Contributing ]]&lt;br /&gt;
&lt;br /&gt;
===Released Software===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[ipod_sun]]&lt;br /&gt;
* [[U-Boot|U-Boot port]]&lt;br /&gt;
* [[Linux|Linux port]]&lt;br /&gt;
* Legacy:&lt;br /&gt;
** [[iBugger]]&lt;br /&gt;
** [[iLoader]]&lt;br /&gt;
** [[emCORE]]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===Basic skills===&lt;br /&gt;
* [[Working with binaries]]&lt;br /&gt;
* [[Dumping firmware]]&lt;br /&gt;
* [[Extracting firmware]]&lt;br /&gt;
* [[Firmware downgrading]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
===Reverse engineering results===&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
** [[Bootrom]]&lt;br /&gt;
** [[Boot Process]]&lt;br /&gt;
** [[Firmware decryption]]&lt;br /&gt;
** [[FTL|Flash Translation Layer]]&lt;br /&gt;
** [[RetailOS]]&lt;br /&gt;
*** [[RetailOS Options]]&lt;br /&gt;
* [[GUID table]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
* Nano 2G&lt;br /&gt;
** [[Nano2G clock gates‎]]&lt;br /&gt;
** [[Nano2G LCD init]]&lt;br /&gt;
** [[Nano2G HW analysis]]&lt;br /&gt;
** [[S5L8701 analysis]]&lt;br /&gt;
* Nano 4G&lt;br /&gt;
** [[Nano4G firmware upgrade process]]&lt;br /&gt;
* Nano 5G&lt;br /&gt;
** [[Nano 5G|General]]&lt;br /&gt;
&lt;br /&gt;
===Other guides===&lt;br /&gt;
* [[Modes]]&lt;br /&gt;
|style=&amp;quot;border: 1px dashed #c6c9ff; background-color: #f0f0ff&amp;quot;|&lt;br /&gt;
===Hardware===&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
** [[Nano 1G]]&lt;br /&gt;
** [[Nano 2G]]&lt;br /&gt;
** [[Nano 3G]]&lt;br /&gt;
** [[Nano 4G]]&lt;br /&gt;
*** [[920-0614-03]]&lt;br /&gt;
** [[Nano 5G]]&lt;br /&gt;
** [[Nano 6G]]&lt;br /&gt;
** [[Nano 7G]]&lt;br /&gt;
** [[Classic 1G]]&lt;br /&gt;
** [[Classic 2G]]&lt;br /&gt;
** [[Classic 3G]]&lt;br /&gt;
* [[Chronology]]&lt;br /&gt;
* [[S5L8700 datasheet]]&lt;br /&gt;
&lt;br /&gt;
===Exploiting===&lt;br /&gt;
* [[wInd3x]]&lt;br /&gt;
* [[Pwnage 2.0]]&lt;br /&gt;
* [[Notes vulnerability]]&lt;br /&gt;
** [[Address bruteforcing]]&lt;br /&gt;
** [[Nanotron 3000]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Osos/disk_swapping_bug&amp;diff=22088</id>
		<title>Osos/disk swapping bug</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Osos/disk_swapping_bug&amp;diff=22088"/>
		<updated>2024-08-04T04:42:23Z</updated>

		<summary type="html">&lt;p&gt;760ceb3b9c0ba4872cadf3ce35a7a494: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:osos/disk swapping bug}}&lt;br /&gt;
[[File:Disk swap visualization.png|thumb|right|Simplified visualization of the boot logic of an iPod nano (6th generation)]]&lt;br /&gt;
&lt;br /&gt;
The osos/disk swapping bug is a bug in the boot process of the iPod nano (3rd generation and later) allowing for untethered boot of the [[retailOS]] with a modified resource partition. &lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
In the firmware, the retailOS is stored in the &amp;lt;code&amp;gt;osos&amp;lt;/code&amp;gt; partition, and disk mode is stored in the &amp;lt;code&amp;gt;disk&amp;lt;/code&amp;gt; partition.  &lt;br /&gt;
The retailOS on the iPod nano reads from from the &amp;lt;code&amp;gt;rsrc&amp;lt;/code&amp;gt; partition, a FAT16 filesystem containing UI images, translation strings, fonts, and more. Unlike all other partitions ever included in official firmware, the &amp;lt;code&amp;gt;rsrc&amp;lt;/code&amp;gt; partition is signed, but not encrypted. The disk mode does not use the &amp;lt;code&amp;gt;rsrc&amp;lt;/code&amp;gt; partition.  &lt;br /&gt;
&lt;br /&gt;
When the device is powered on, it decides whether to boot into disk mode or retailOS based on whether a button is pressed (on the iPod nano (6th generation), this is the Volume Up button). The basic logic is this:&lt;br /&gt;
&lt;br /&gt;
    if volume up pressed:&lt;br /&gt;
        boot &amp;quot;disk&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        if &amp;quot;rsrc&amp;quot; signature check passed:&lt;br /&gt;
            boot &amp;quot;osos&amp;quot;&lt;br /&gt;
        else:&lt;br /&gt;
            error out&lt;br /&gt;
&lt;br /&gt;
If the firmware is modified so that the &amp;lt;code&amp;gt;disk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;osos&amp;lt;/code&amp;gt; partitions are swapped - that is, the names of the two partitions are switched - the behavior reverses, meaning the iPod will boot into disk mode by default and retailOS if the volume up button is held. This is where the bug exists: if the iPod is booted with the volume up button pressed, the iPod, expecting to boot disk mode, will boot into retailOS without performing a signature check on &amp;lt;code&amp;gt;rsrc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
On at least the iPod nano (6th generation), booting retailOS this way seems to make the filesystem read only to the device: no actions taken on the device persist after a reboot.&lt;/div&gt;</summary>
		<author><name>760ceb3b9c0ba4872cadf3ce35a7a494</name></author>
	</entry>
</feed>