Skip to content
This repository has been archived by the owner on Sep 15, 2023. It is now read-only.

Commit

Permalink
remove unneccessary
Browse files Browse the repository at this point in the history
  • Loading branch information
jimzrt committed Oct 4, 2019
1 parent 357e25d commit b443280
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 50 deletions.
47 changes: 23 additions & 24 deletions source/keys/keys.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ sdmmc_t sdmmc;
emmc_part_t *system_part;
emmc_part_t *prodinfo_part;

#define ENCRYPTED 1
#define DECRYPTED 0

#define SECTORS_IN_CLUSTER 32
#define PRODINFO_SIZE 0x3FBC00

Expand Down Expand Up @@ -276,7 +275,7 @@ bool dump_keys()

gfx_printf("%kGot keys!\n", COLOR_GREEN);
char serial[15];
readData((u8 *)serial, 0x250, 15, ENCRYPTED, NULL);
readData((u8 *)serial, 0x250, 15, NULL);

gfx_printf("%kCurrent serial:%s\n\n", COLOR_BLUE, serial);

Expand All @@ -287,7 +286,7 @@ bool erase(u32 offset, u32 length)
{

u8 *tmp = (u8 *)calloc(length, sizeof(u8));
bool result = writeData(tmp, offset, length, ENCRYPTED, NULL);
bool result = writeData(tmp, offset, length, NULL);
free(tmp);
return result;
}
Expand All @@ -304,7 +303,7 @@ bool writeSerial()
junkSerial = "XAW00000000001";
}

return writeData((u8 *)junkSerial, 0x250, 14, ENCRYPTED, NULL);
return writeData((u8 *)junkSerial, 0x250, 14, NULL);
}

bool incognito()
Expand Down Expand Up @@ -395,7 +394,7 @@ static inline u32 _read_le_u32(const void *buffer, u32 offset)
(*(u8 *)(buffer + offset + 3) << 0x18);
}

bool readData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callback)(u32, u32))
bool readData(u8 *buffer, u32 offset, u32 length, void (*progress_callback)(u32, u32))
{

if (progress_callback != NULL)
Expand All @@ -415,7 +414,7 @@ bool readData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callba
while (clusterOffset + sectorCount > SECTORS_IN_CLUSTER)
{
u32 sectorsToRead = SECTORS_IN_CLUSTER - clusterOffset;
if (disk_read_prod(tmp + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorsToRead, enc) != RES_OK)
if (disk_read_prod(tmp + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorsToRead) != RES_OK)
goto out;

sector += sectorsToRead;
Expand All @@ -430,7 +429,7 @@ bool readData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callba
if (sectorCount == 0)
goto done;

if (disk_read_prod(tmp + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorCount, enc) != RES_OK)
if (disk_read_prod(tmp + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorCount) != RES_OK)
goto out;

memcpy(buffer, tmp + newOffset, length);
Expand All @@ -445,7 +444,7 @@ bool readData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callba
return result;
}

bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callback)(u32, u32))
bool writeData(u8 *buffer, u32 offset, u32 length, void (*progress_callback)(u32, u32))
{
if (progress_callback != NULL)
{
Expand Down Expand Up @@ -474,11 +473,11 @@ bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callb
{
bytesToWrite = length;
}
if (disk_read_prod(tmp_sec, sector, 1, enc) != RES_OK)
if (disk_read_prod(tmp_sec, sector, 1) != RES_OK)
goto out;

memcpy(tmp_sec + newOffset, buffer, bytesToWrite);
if (disk_write_prod(tmp_sec, sector, 1, enc) != RES_OK)
if (disk_write_prod(tmp_sec, sector, 1) != RES_OK)
goto out;

sector++;
Expand All @@ -503,7 +502,7 @@ bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callb
while (clusterOffset + sectorCount >= SECTORS_IN_CLUSTER)
{
u32 sectorsToRead = SECTORS_IN_CLUSTER - clusterOffset;
if (disk_write_prod(buffer + newOffset + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorsToRead, enc) != RES_OK)
if (disk_write_prod(buffer + newOffset + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorsToRead) != RES_OK)
goto out;

sector += sectorsToRead;
Expand All @@ -521,7 +520,7 @@ bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callb
// write remaining sectors
if (sectorCount > 0)
{
if (disk_write_prod(buffer + newOffset + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorCount, enc) != RES_OK)
if (disk_write_prod(buffer + newOffset + (sectorOffset * NX_EMMC_BLOCKSIZE), sector, sectorCount) != RES_OK)
goto out;

length -= sectorCount * NX_EMMC_BLOCKSIZE;
Expand All @@ -544,11 +543,11 @@ bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callb
goto out;
}

if (disk_read_prod(tmp_sec, sector, 1, enc) != RES_OK)
if (disk_read_prod(tmp_sec, sector, 1) != RES_OK)
goto out;

memcpy(tmp_sec, buffer + newOffset + (sectorOffset * NX_EMMC_BLOCKSIZE), length);
if (disk_write_prod(tmp_sec, sector, 1, enc) != RES_OK)
if (disk_write_prod(tmp_sec, sector, 1) != RES_OK)
goto out;

done:
Expand All @@ -567,14 +566,14 @@ bool writeHash(u32 hashOffset, u32 offset, u32 sz)
{
bool result = false;
u8 *buffer = (u8 *)malloc(sz);
if (!readData(buffer, offset, sz, ENCRYPTED, NULL))
if (!readData(buffer, offset, sz, NULL))
{
goto out;
}
u8 hash[0x20];
se_calc_sha256(hash, buffer, sz);

if (!writeData(hash, hashOffset, 0x20, ENCRYPTED, NULL))
if (!writeData(hash, hashOffset, 0x20, NULL))
{
goto out;
}
Expand Down Expand Up @@ -610,13 +609,13 @@ bool verifyHash(u32 hashOffset, u32 offset, u32 sz)
{
bool result = false;
u8 *buffer = (u8 *)malloc(sz);
readData(buffer, offset, sz, ENCRYPTED, NULL);
readData(buffer, offset, sz, NULL);
u8 hash1[0x20];
se_calc_sha256(hash1, buffer, sz);

u8 hash2[0x20];

readData(hash2, hashOffset, 0x20, ENCRYPTED, NULL);
readData(hash2, hashOffset, 0x20, NULL);

if (memcmp(hash1, hash2, 0x20))
{
Expand All @@ -636,14 +635,14 @@ bool verifyHash(u32 hashOffset, u32 offset, u32 sz)
u32 certSize()
{
u32 buffer;
readData((u8 *)&buffer, 0x0AD0, sizeof(buffer), ENCRYPTED, NULL);
readData((u8 *)&buffer, 0x0AD0, sizeof(buffer), NULL);
return buffer;
}

u32 calibrationDataSize()
{
u32 buffer;
readData((u8 *)&buffer, 0x08, sizeof(buffer), ENCRYPTED, NULL);
readData((u8 *)&buffer, 0x08, sizeof(buffer), NULL);
return buffer;
}

Expand Down Expand Up @@ -676,7 +675,7 @@ bool verifyProdinfo()
if (verifyClientCertHash() && verifyCal0Hash())
{
char serial[15];
readData((u8 *)serial, 0x250, 15, ENCRYPTED, NULL);
readData((u8 *)serial, 0x250, 15, NULL);
gfx_printf("%kVerification successful!\n%kNew Serial:%s\n", COLOR_GREEN, COLOR_BLUE, serial);
return true;
}
Expand Down Expand Up @@ -791,7 +790,7 @@ bool backupProdinfo()

u8 *bufferNX = (u8 *)malloc(PRODINFO_SIZE);
gfx_printf("%kReading from NAND...\n", COLOR_YELLOW);
if (!readData(bufferNX, 0, PRODINFO_SIZE, ENCRYPTED, print_progress))
if (!readData(bufferNX, 0, PRODINFO_SIZE, print_progress))
{
gfx_printf("\n%kError reading from NAND!\n", COLOR_RED);
goto out;
Expand Down Expand Up @@ -848,7 +847,7 @@ bool restoreProdinfo()
goto out;
}
gfx_printf("%kWriting to NAND...\n", COLOR_YELLOW);
if (!writeData(bufferNX, 0, PRODINFO_SIZE, ENCRYPTED, print_progress))
if (!writeData(bufferNX, 0, PRODINFO_SIZE, print_progress))
{
gfx_printf("\n%kError writing to NAND!\nThis is bad. Try again, because your switch probably won't boot.\n"
"If you see this error again, you should restore via NAND backup in hekate.\n",
Expand Down
4 changes: 2 additions & 2 deletions source/keys/keys.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ void test();
bool dump_keys();
bool incognito();
void cleanUp();
bool readData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callback)(u32, u32));
bool writeData(u8 *buffer, u32 offset, u32 length, u8 enc, void (*progress_callback)(u32, u32));
bool readData(u8 *buffer, u32 offset, u32 length, void (*progress_callback)(u32, u32));
bool writeData(u8 *buffer, u32 offset, u32 length, void (*progress_callback)(u32, u32));
bool writeClientCertHash();
bool writeCal0Hash();
bool verifyProdinfo();
Expand Down
26 changes: 4 additions & 22 deletions source/libs/fatfs/diskio.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,19 +135,10 @@ DRESULT disk_read_prod(

BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector in LBA */
UINT count, /* Number of sectors to read */
BYTE enc)
UINT count /* Number of sectors to read */
)
{

if (enc == 0)
{
if (nx_emmc_part_read(&storage, prodinfo_part, sector, count, buff))
{
return RES_OK;
}
return RES_ERROR;
}

__attribute__((aligned(16))) static u8 tweak[0x10];
__attribute__((aligned(16))) static u64 prev_cluster = -1;
__attribute__((aligned(16))) static u32 prev_sector = 0;
Expand Down Expand Up @@ -185,19 +176,10 @@ DRESULT disk_write_prod(

BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector in LBA */
UINT count, /* Number of sectors to read */
BYTE enc)
UINT count /* Number of sectors to read */
)
{

if (enc == 0)
{
if (nx_emmc_part_write(&storage, prodinfo_part, sector, count, buff))
{
return RES_OK;
}
return RES_ERROR;
}

__attribute__((aligned(16))) static u8 tweak[0x10];
__attribute__((aligned(16))) static u64 prev_cluster = -1;
__attribute__((aligned(16))) static u32 prev_sector = 0;
Expand Down
4 changes: 2 additions & 2 deletions source/libs/fatfs/diskio.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ typedef enum {
DSTATUS disk_initialize (BYTE pdrv);
DSTATUS disk_status (BYTE pdrv);
DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count);
DRESULT disk_read_prod (BYTE *buff, DWORD sector, UINT count, BYTE enc);
DRESULT disk_write_prod (BYTE *buff, DWORD sector, UINT count, BYTE enc);
DRESULT disk_read_prod (BYTE *buff, DWORD sector, UINT count);
DRESULT disk_write_prod (BYTE *buff, DWORD sector, UINT count);
DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count);
DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff);

Expand Down

0 comments on commit b443280

Please sign in to comment.