Repository navigation
Conversation
… set 9)⚠️ Vibecoded slop. Not reviewed by a human! Firmware 1.0.1 (build 37A10002) lists only SQLite post-process command set 9 in SysInfoExtended. The nano patch accepted only set 25, so every write failed with "SQLite post-process commands: no command set 25". `podkit device reset` deleted the audio files before that failure, which left the device without an iTunesDB. Set 9 is set 25 minus 11 later commands: CreateIsHomeVideo, FakePragmaITunes26, the eight item_stats audio/subtitle language and track ID commands, and UpdateDeviceUpdateLevelTo1109 (set 9 runs UpdateDeviceUpdateLevelTo1107 instead). The 116 shared commands are in the same order with the same SQL. - Use set 9 when the device lists no set 25. Set 25 is still preferred, and other sets (for example only 26) are still rejected. - keep_device_choices() only copies the track choice columns when the new Dynamic.itdb has them. Set 9 does not create them, so the UPDATE failed whenever the device already had a Dynamic.itdb. Tested on a nano 7G 16GB running firmware 1.0.1, through the Docker image: a library was initialised, then a test MP3 and a 14-track MP3 album with artwork were synced and listed back by `podkit device music`. All 117 set-9 commands ran. Playback on the device has not been checked. Library.itdb's user_version stays 0 because set 9 has no FakePragmaITunes26. tools/nano7/test-libgpod.sh passes (19 tests, 1 skipped because the Alpine builder has no time zone data). The new set-9 test fails against the unfixed patch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning
Vibecoded slop. Unreviewed.
Target:
Pred8or/podkit:pr/8-tags-adapters, the top of the stack in jvgomg#76–jvgomg#83. The change touchestools/prebuild/libgpod-nano.patch, which doesn't exist onjvgomg/podkit:mainyet. It logically belongs with jvgomg#78 (command set selection) and jvgomg#79 (keep_device_choices), so cherry-pick or squash it wherever it fits best.Problem
On an iPod nano 7G running firmware 1.0.1 (build 37A10002), every database write fails:
The SysInfoExtended read live over USB lists only
UserVersionCommandSets9. The patch accepts only 25, which firmware 1.0.4 provides.podkit device resetdeletes the audio files before it writes, so this failure leaves the device with noiTunesDB.Set 9 compared with set 25
UpdateDeviceUpdateLevelTo1107CreateIsHomeVideo,FakePragmaITunes26, 8×ItemStats{Audio,Subtitle}{Language,TrackID},UpdateDeviceUpdateLevelTo1109Change
run_post_process_commands: on nano 6G/7G, use set 9 when the device lists no set 25. Set 25 is still preferred, and every other set (for example only 26) is still rejected.keep_device_choices: copy the track choice columns only when the newDynamic.itdbhas them (new helper,has_track_choices). Set 9 doesn't create them, so theUPDATEfailed whenever the device already had aDynamic.itdb.test_nano_firmware_1_0_1_command_set_9. It builds set 9 from the set 25 capture, then checks create and resave, the 1107 update level, and that the track choice columns are absent.tools/nano7/README.mdparagraph about command sets, and added a changeset.Testing
tools/nano7/test-libgpod.sh, run in an Alpine 3.21 builder against the statically built patched libgpod: 19 tests pass, 1 skipped (no time zone data in the builder). The new test fails against the unfixed patch.packages/podkit-docker/Dockerfile:device initworked, thensyncof a test MP3 and a 14-track MP3 album with artwork.117 out of 117 post process commands successfully executed.podkit device musiclists all 14 tracks with the right metadata.Library.itdb'suser_versionstays 0, because set 9 has noFakePragmaITunes26. I don't know whether firmware 1.0.1 checks it.