LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
xb360.h
Go to the documentation of this file.
1/*
2 * xb360.h
3 *
4 * Created on: Sep 4, 2008
5 */
6
7#ifndef __XB360_H
8#define __XB360_H
9
10#define XEKEY_MANUFACTURING_MODE 0x00
11#define XEKEY_ALTERNATE_KEY_VAULT 0x01
12#define XEKEY_RESERVED_BYTE2 0x02
13#define XEKEY_RESERVED_BYTE3 0x03
14#define XEKEY_RESERVED_WORD1 0x04
15#define XEKEY_RESERVED_WORD2 0x05
16#define XEKEY_RESTRICTED_HVEXT_LOADER 0x06
17#define XEKEY_RESERVED_DWORD2 0x07
18#define XEKEY_RESERVED_DWORD3 0x08
19#define XEKEY_RESERVED_DWORD4 0x09
20#define XEKEY_RESTRICTED_PRIVILEDGES 0x0A
21#define XEKEY_RESERVED_QWORD2 0x0B
22#define XEKEY_RESERVED_QWORD3 0x0C
23#define XEKEY_RESERVED_QWORD4 0x0D
24#define XEKEY_RESERVED_KEY1 0x0E
25#define XEKEY_RESERVED_KEY2 0x0F
26#define XEKEY_RESERVED_KEY3 0x10
27#define XEKEY_RESERVED_KEY4 0x11
28#define XEKEY_RESERVED_RANDOM_KEY1 0x12
29#define XEKEY_RESERVED_RANDOM_KEY2 0x13
30#define XEKEY_CONSOLE_SERIAL_NUMBER 0x14
31#define XEKEY_MOBO_SERIAL_NUMBER 0x15
32#define XEKEY_GAME_REGION 0x16
33#define XEKEY_CONSOLE_OBFUSCATION_KEY 0x17
34#define XEKEY_KEY_OBFUSCATION_KEY 0x18
35#define XEKEY_ROAMABLE_OBFUSCATION_KEY 0x19
36#define XEKEY_DVD_KEY 0x1A
37#define XEKEY_PRIMARY_ACTIVATION_KEY 0x1B
38#define XEKEY_SECONDARY_ACTIVATION_KEY 0x1C
39#define XEKEY_GLOBAL_DEVICE_2DES_KEY1 0x1D
40#define XEKEY_GLOBAL_DEVICE_2DES_KEY2 0x1E
41#define XEKEY_WIRELESS_CONTROLLER_MS_2DES_KEY1 0x1F
42#define XEKEY_WIRELESS_CONTROLLER_MS_2DES_KEY2 0x20
43#define XEKEY_WIRED_WEBCAM_MS_2DES_KEY1 0x21
44#define XEKEY_WIRED_WEBCAM_MS_2DES_KEY2 0x22
45#define XEKEY_WIRED_CONTROLLER_MS_2DES_KEY1 0x23
46#define XEKEY_WIRED_CONTROLLER_MS_2DES_KEY2 0x24
47#define XEKEY_MEMORY_UNIT_MS_2DES_KEY1 0x25
48#define XEKEY_MEMORY_UNIT_MS_2DES_KEY2 0x26
49#define XEKEY_OTHER_XSM3_DEVICE_MS_2DES_KEY1 0x27
50#define XEKEY_OTHER_XSM3_DEVICE_MS_2DES_KEY2 0x28
51#define XEKEY_WIRELESS_CONTROLLER_3P_2DES_KEY1 0x29
52#define XEKEY_WIRELESS_CONTROLLER_3P_2DES_KEY2 0x2A
53#define XEKEY_WIRED_WEBCAM_3P_2DES_KEY1 0x2B
54#define XEKEY_WIRED_WEBCAM_3P_2DES_KEY2 0x2C
55#define XEKEY_WIRED_CONTROLLER_3P_2DES_KEY1 0x2D
56#define XEKEY_WIRED_CONTROLLER_3P_2DES_KEY2 0x2E
57#define XEKEY_MEMORY_UNIT_3P_2DES_KEY1 0x2F
58#define XEKEY_MEMORY_UNIT_3P_2DES_KEY2 0x30
59#define XEKEY_OTHER_XSM3_DEVICE_3P_2DES_KEY1 0x31
60#define XEKEY_OTHER_XSM3_DEVICE_3P_2DES_KEY2 0x32
61#define XEKEY_CONSOLE_PRIVATE_KEY 0x33
62#define XEKEY_XEIKA_PRIVATE_KEY 0x34
63#define XEKEY_CARDEA_PRIVATE_KEY 0x35
64#define XEKEY_CONSOLE_CERTIFICATE 0x36
65#define XEKEY_XEIKA_CERTIFICATE 0x37
66#define XEKEY_CARDEA_CERTIFICATE 0x38
67
68unsigned int xenon_get_kv_size();
69unsigned int xenon_get_kv_offset();
70
71#define KV_FLASH_SIZE xenon_get_kv_size()
72#define KV_FLASH_OFFSET xenon_get_kv_offset()
73#define KV_FLASH_PAGES KV_FLASH_SIZE / 0x200
74#define KV_FLASH_PTR 0x6C
75#define VFUSES_SIZE 0x60
76#define VFUSES_OFFSET 0x95000
77
78#define XELL_SIZE (256*1024)
79#define XELL_FOOTER_OFFSET (256*1024-16)
80#define XELL_FOOTER_LENGTH 16
81#define XELL_FOOTER "xxxxxxxxxxxxxxxx"
82
83#define XELL_OFFSET_COUNT 8
84static const unsigned int xelloffsets[XELL_OFFSET_COUNT] = {0x70000, // ggBoot main xell-gggggg
85 0x95060, // FreeBOOT Single-NAND main xell-2f
86 0x100000, // XeLL-Only Image (Main)
87 0xC0000, // XeLL-Only Image (Backup)
88 0xE0000,
89 0xF0000, // DevGL/Glitch2m xell-gggggg in flashfs (16mb)
90 0xF4000, // DevGL xell-gggggg in flashfs (64mb)
91 0xB80000}; // DevGL/Glitch2m xell-gggggg in flashfs (BB 256/512mb)
92
93#define REV_XENON 0
94#define REV_ZEPHYR 1
95#define REV_FALCON 2
96#define REV_JASPER 3
97#define REV_TRINITY 4
98#define REV_CORONA 5
99#define REV_CORONA_PHISON 6
100#define REV_WINCHESTER 7
101#define REV_WINCHESTER_MMC 8
102#define REV_UNKNOWN (-1)
103
104typedef struct kventry {
105 char id;
109
110
111void print_key(char *name, unsigned char *data);
112int cpu_get_key(unsigned char *data);
113int get_virtual_cpukey(unsigned char *data);
114int kv_read(unsigned char *data, int virtualcpukey);
115int kv_get_dvd_key(unsigned char *dvd_key);
116int kv_get_key(unsigned char keyid, unsigned char *keybuf, int *keybuflen, unsigned char *keyvault);
117void print_cpu_dvd_keys(void);
118//int updateXeLL(void * addr, unsigned len);
119int updateXeLL(char *path);
120unsigned int xenon_get_DVE();
121unsigned int xenon_get_PCIBridgeRevisionID();
122unsigned int xenon_get_CPU_PVR();
123unsigned int xenon_get_XenosID();
124unsigned int xenon_get_ram_size();
125
126int xenon_get_console_type(void);
127
128int xenon_get_logical_nand_data(void* buf, unsigned int offset, unsigned int len);
130#define MMC_FLASH_SIZE 0x3000000
131
132#endif /* XB360_H_ */
Definition: xb360.h:104
int offset
Definition: xb360.h:106
int length
Definition: xb360.h:107
char id
Definition: xb360.h:105
int xenon_get_logical_nand_data(void *buf, unsigned int offset, unsigned int len)
Definition: xb360.c:682
unsigned int xenon_get_CPU_PVR()
Definition: xb360.c:610
int xenon_get_console_type(void)
Definition: xb360.c:622
void print_key(char *name, unsigned char *data)
Definition: xb360.c:87
#define XELL_OFFSET_COUNT
Definition: xb360.h:83
int get_virtual_cpukey(unsigned char *data)
Definition: xb360.c:112
int updateXeLL(char *path)
Definition: xb360.c:477
unsigned int xenon_get_PCIBridgeRevisionID()
Definition: xb360.c:605
unsigned int xenon_get_kv_offset()
Definition: xb360.c:699
unsigned int xenon_get_XenosID()
Definition: xb360.c:617
int kv_read(unsigned char *data, int virtualcpukey)
Definition: xb360.c:209
void print_cpu_dvd_keys(void)
Definition: xb360.c:358
unsigned int xenon_get_ram_size()
Definition: xb360.c:707
int kv_get_key(unsigned char keyid, unsigned char *keybuf, int *keybuflen, unsigned char *keyvault)
Definition: xb360.c:193
unsigned int xenon_get_DVE()
Definition: xb360.c:596
unsigned int xenon_get_kv_size()
Definition: xb360.c:691
int xenon_logical_nand_data_ok()
Definition: xb360.c:673
int cpu_get_key(unsigned char *data)
Definition: xb360.c:105
int kv_get_dvd_key(unsigned char *dvd_key)
Definition: xb360.c:296
union @15 data