1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8 * $Id: ipodpatcher.c 12237 2007-02-08 21:31:38Z dave $
10 * Copyright (C) 2006-2007 Dave Chapman
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #ifndef _IPODPATCHER_H
21 #define _IPODPATCHER_H
25 /* Size of buffer for disk I/O - 8MB is large enough for any version
26 of the Apple firmware, but not the Nano's RSRC image. */
27 #define BUFFER_SIZE 8*1024*1024
28 extern unsigned char* sectorbuf
;
30 #define FILETYPE_DOT_IPOD 0
31 #define FILETYPE_DOT_BIN 1
33 #define FILETYPE_INTERNAL 2
36 char* get_parttype(int pt
);
37 int read_partinfo(struct ipod_t
* ipod
, int silent
);
38 int read_partition(struct ipod_t
* ipod
, int outfile
);
39 int write_partition(struct ipod_t
* ipod
, int infile
);
40 int diskmove(struct ipod_t
* ipod
, int delta
);
41 int add_bootloader(struct ipod_t
* ipod
, char* filename
, int type
);
42 int delete_bootloader(struct ipod_t
* ipod
);
43 int write_firmware(struct ipod_t
* ipod
, char* filename
, int type
);
44 int read_firmware(struct ipod_t
* ipod
, char* filename
, int type
);
45 int read_directory(struct ipod_t
* ipod
);
46 int list_images(struct ipod_t
* ipod
);
47 int getmodel(struct ipod_t
* ipod
, int ipod_version
);
48 int ipod_scan(struct ipod_t
* ipod
);
49 int write_dos_partition_table(struct ipod_t
* ipod
);
50 int read_aupd(struct ipod_t
* ipod
, char* filename
);
51 int write_aupd(struct ipod_t
* ipod
, char* filename
);
52 off_t
filesize(int fd
);