My favorites | Sign in
Project Logo
                
Details: Show all Hide all

Earlier this year

  • Jul 24, 2009
    r8 (Include basic test and decode hints for TV shows.) committed by joe.walton.gglcd   -   Include basic test and decode hints for TV shows.
    Include basic test and decode hints for TV shows.
  • Jul 11, 2009
    issue 2 (8.2 of iTunes itl not readable) commented on by zzz20090...@pby.com   -   Sorry for that first paragraph above - the poor writing reflects my level of frustration at the time. I've had two important realizations: 1) sean.patrick.obrien (2009-Apr-27) was right: you must inflate - not deflate; 2) The 8.x ITL I was using came from the "Previous iTunes Libraries" folder, where damaged libraries (too) are kept - the library I was testing was probably corrupt. Using inflate code and a copy of my current (working) iTunes Library, I was finally successful. Here's the code added to Hdfm.java: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; ... // In Hdfm.read(...): byte[] by_Decompressed; // Moved out of example for clarity int i__Decompressed; ByteArrayOutputStream os_Decompressed; InflaterInputStream is_Inflater; ... // Comment out the following line: // return new Hdfm(version, unknown, headerRemainder, decrypted); // Add these lines instead: is_Inflater = new InflaterInputStream( new ByteArrayInputStream( by_Decrypted ), new Inflater() ); os_Decompressed = new ByteArrayOutputStream( restOfFile.length ); by_Decompressed = new byte[restOfFile.length]; while( true ) { i__Decompressed = is_Inflater.read( by_Decompressed, 0, restOfFile.length ); if( i__Decompressed == -1 ) break; os_Decompressed.write( by_Decompressed, 0, i__Decompressed ); } by_Decompressed = os_Decompressed.toByteArray(); os_Decompressed.close(); is_Inflater.close(); return new Hdfm( version, unknown, headerRemainder, by_Decompressed ); // End modification I borrowed the core of this code from devdaily.com; Java experts can probably do the whole thing better (and use accepted formatting conventions). BTW, this fix applies to the r7 code.
    Sorry for that first paragraph above - the poor writing reflects my level of frustration at the time. I've had two important realizations: 1) sean.patrick.obrien (2009-Apr-27) was right: you must inflate - not deflate; 2) The 8.x ITL I was using came from the "Previous iTunes Libraries" folder, where damaged libraries (too) are kept - the library I was testing was probably corrupt. Using inflate code and a copy of my current (working) iTunes Library, I was finally successful. Here's the code added to Hdfm.java: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; ... // In Hdfm.read(...): byte[] by_Decompressed; // Moved out of example for clarity int i__Decompressed; ByteArrayOutputStream os_Decompressed; InflaterInputStream is_Inflater; ... // Comment out the following line: // return new Hdfm(version, unknown, headerRemainder, decrypted); // Add these lines instead: is_Inflater = new InflaterInputStream( new ByteArrayInputStream( by_Decrypted ), new Inflater() ); os_Decompressed = new ByteArrayOutputStream( restOfFile.length ); by_Decompressed = new byte[restOfFile.length]; while( true ) { i__Decompressed = is_Inflater.read( by_Decompressed, 0, restOfFile.length ); if( i__Decompressed == -1 ) break; os_Decompressed.write( by_Decompressed, 0, i__Decompressed ); } by_Decompressed = os_Decompressed.toByteArray(); os_Decompressed.close(); is_Inflater.close(); return new Hdfm( version, unknown, headerRemainder, by_Decompressed ); // End modification I borrowed the core of this code from devdaily.com; Java experts can probably do the whole thing better (and use accepted formatting conventions). BTW, this fix applies to the r7 code.
  • Jul 10, 2009
    issue 2 (8.2 of iTunes itl not readable) commented on by zzz20090...@pby.com   -   If I run the code against an older (before 2009-Mar), I get the decrypted file; anything later (incl. 8.2) gives me Chinese text. "deflated" suggests compression; the latest version of the iTunes library should be compressed after it's decrypted?! I inserted this code after decrypted = crypt(restOfFile, Cipher.DECRYPT_MODE); in Hdfm.read(...): java.util.zip.DeflaterInputStream is_Deflater = new java.util.zip.DeflaterInputStream ( new java.io.ByteArrayInputStream( decrypted ), new java.util.zip.Deflater() ); java.io.ByteArrayOutputStream os_ByteArray = new java.io.ByteArrayOutputStream( restOfFile.length ); byte[] by_Compressed = new byte[restOfFile.length]; int i__Compressed; while( true ) { i__Compressed = is_Deflater.read( by_Compressed, 0, restOfFile.length ); if( i__Compressed == -1 ) break; os_ByteArray.write( by_Compressed, 0, i__Compressed ); } by_Compressed = os_ByteArray.toByteArray(); return new Hdfm( version, unknown, headerRemainder, by_Compressed ); I temporarily modified ParseLibrary.parse(...) to immediately return the Hdfm to ParseLibrary.main(...) - since ParseLibrary.drain(...) was failing - and write Hdfm.fileData (aka by_Compressed) to decrypted-file. With pre-8.? ITLs, I get an obvious database; otherwise I get tons of Chinese characters. If you have code that works, please post an example. It's agonizing being so close yet so far (cannot revert database to 7.x). BTW, tried inflating too; got some kind of header error. Thanks.
    If I run the code against an older (before 2009-Mar), I get the decrypted file; anything later (incl. 8.2) gives me Chinese text. "deflated" suggests compression; the latest version of the iTunes library should be compressed after it's decrypted?! I inserted this code after decrypted = crypt(restOfFile, Cipher.DECRYPT_MODE); in Hdfm.read(...): java.util.zip.DeflaterInputStream is_Deflater = new java.util.zip.DeflaterInputStream ( new java.io.ByteArrayInputStream( decrypted ), new java.util.zip.Deflater() ); java.io.ByteArrayOutputStream os_ByteArray = new java.io.ByteArrayOutputStream( restOfFile.length ); byte[] by_Compressed = new byte[restOfFile.length]; int i__Compressed; while( true ) { i__Compressed = is_Deflater.read( by_Compressed, 0, restOfFile.length ); if( i__Compressed == -1 ) break; os_ByteArray.write( by_Compressed, 0, i__Compressed ); } by_Compressed = os_ByteArray.toByteArray(); return new Hdfm( version, unknown, headerRemainder, by_Compressed ); I temporarily modified ParseLibrary.parse(...) to immediately return the Hdfm to ParseLibrary.main(...) - since ParseLibrary.drain(...) was failing - and write Hdfm.fileData (aka by_Compressed) to decrypted-file. With pre-8.? ITLs, I get an obvious database; otherwise I get tons of Chinese characters. If you have code that works, please post an example. It's agonizing being so close yet so far (cannot revert database to 7.x). BTW, tried inflating too; got some kind of header error. Thanks.
  • Jun 30, 2009
    issue 2 (8.2 of iTunes itl not readable) commented on by derelk   -   The existing key still works fine for me in 8.2. As noted above, the data must be zlib deflated after it is decrypted.
    The existing key still works fine for me in 8.2. As noted above, the data must be zlib deflated after it is decrypted.
  • May 29, 2009
    r7 (Coding style; removing trailing spaces. ) committed by joe.walton.gglcd   -   Coding style; removing trailing spaces.
    Coding style; removing trailing spaces.
  • May 26, 2009
    issue 2 (8.2 of iTunes itl not readable) reported by chris.escsoft   -   looks like they changed it again in .itl for iTunes 8.2 beta. The file no longer will decompress.
    looks like they changed it again in .itl for iTunes 8.2 beta. The file no longer will decompress.
  • May 26, 2009
    issue 1 (BHUILuilfghuila3 no longer works in latest iTunes) commented on by chris.escsoft   -   looks like they changed it again in .itl for iTunes 8.2 beta. The file no longer will decompress.
    looks like they changed it again in .itl for iTunes 8.2 beta. The file no longer will decompress.
  • May 02, 2009
    issue 1 (BHUILuilfghuila3 no longer works in latest iTunes) commented on by chris.escsoft   -   do you know how to uncompress this file? Would it be a standard zlib deflate?
    do you know how to uncompress this file? Would it be a standard zlib deflate?
  • Apr 27, 2009
    issue 1 (BHUILuilfghuila3 no longer works in latest iTunes) commented on by sean.patrick.obrien   -   The key is still the same. The data is just zlib deflated. Passing the decrypted data through inflate will result in usable data.
    The key is still the same. The data is just zlib deflated. Passing the decrypted data through inflate will result in usable data.
  • Mar 26, 2009
    issue 1 (BHUILuilfghuila3 no longer works in latest iTunes) reported by chris.escsoft   -   What steps will reproduce the problem? 1. key has changed with iTunes 8.1.x.x 2. 3. What is the expected output? What do you see instead? fails to decrypt What version of the product are you using? On what operating system? current Please provide any additional information below. needs new key
    What steps will reproduce the problem? 1. key has changed with iTunes 8.1.x.x 2. 3. What is the expected output? What do you see instead? fails to decrypt What version of the product are you using? On what operating system? current Please provide any additional information below. needs new key

Older

  • Nov 09, 2008
    Tools (Brief information about the provided tools.) Wiki page edited by joe.walton.gglcd
  • Nov 05, 2008
    Tools (Brief information about the provided tools.) Wiki page added by joe.walton.gglcd
  • Nov 04, 2008
    r4 (Initial import including tests and sample tools. ) committed by joe.walton.gglcd   -   Initial import including tests and sample tools.
    Initial import including tests and sample tools.
  • Nov 01, 2008
    FileFormatLinks (Links to file format descriptions) Wiki page edited by joe.walton.gglcd
  • Nov 01, 2008
    FileFormatLinks (Links to file format descriptions) Wiki page added by joe.walton.gglcd
  • Nov 01, 2008
    Project titl created by joe.walton.gglcd   -   Tools for iTunes Libraries
    Tools for iTunes Libraries
 
Hosted by Google Code