/source/hos/pkg1.c - What code do I need to add here to be able to use it under FW 17.0.0?

Muxi

Well-Known Member
OP
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,120
Country
Germany
I want to make a RCM payload fit to run under FW 17.0.0. Currently this code is included in the corresponding file (pkg1.c) and only functional up to FW 11.0.1. Can someone please tell me what needs to be added there to make the payload work under FW 17.0.0? Thanks a lot in advance for any answers.

Code:
static const pkg1_id_t _pkg1_ids[] = {
    { "20161121183008", 0 }, //1.0.0
    { "20170210155124", 0 }, //2.0.0 - 2.3.0
    { "20170519101410", 1 }, //3.0.0
    { "20170710161758", 2 }, //3.0.1 - 3.0.2
    { "20170921172629", 3 }, //4.0.0 - 4.1.0
    { "20180220163747", 4 }, //5.0.0 - 5.1.0
    { "20180802162753", 5 }, //6.0.0 - 6.1.0
    { "20181107105733", 6 }, //6.2.0
    { "20181218175730", 7 }, //7.0.0
    { "20190208150037", 7 }, //7.0.1
    { "20190314172056", 7 }, //8.0.0 - 8.0.1
    { "20190531152432", 8 }, //8.1.0
    { "20190809135709", 9 }, //9.0.0 - 9.0.1
    { "20191021113848", 10}, //9.1.0
    { "20200303104606", 10}, //10.0.0 - 10.2.0
    { "20201030110855", 10}, //11.0.0 - 11.0.1
    //From here on the code must be completed//
    { NULL } //End.
};
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,279
Trophies
3
XP
12,046
Country
Poland
Just try to run 17.0.0 with some old Hekate, you will get number on the left as part of error screen.

Number on the right should be 16
 
  • Like
Reactions: Muxi

Muxi

Well-Known Member
OP
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,120
Country
Germany
I've been updating the CFW system for years and always right that I seem to have a hard time doing it wrong with older Hekate versions. Either I get the message "there must be dragons - update your bootloader folder" when booting or I get a blackscreen. However, I do not get the desired error message with the necessary ID. Can someone please describe me exactly how I have to proceed under FW 17.0.0 to install for example Hekate 6.0.6/NYX 1.5.5?
 

Muxi

Well-Known Member
OP
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,120
Country
Germany
It is a modified version of Incognito_RCM by me, which is only designed for the emuMMC, so nothing can be changed on the sysMMC.
 

Badablek

Well-Known Member
Member
Joined
Jan 23, 2006
Messages
517
Trophies
1
Age
43
XP
2,919
Country
France
@Muxi maybe this : https://github.com/Atmosphere-NX/Atmosphere/blob/master/fusee/program/source/fusee_setup_horizon.cpp

Code:
 case 0x10:
                    if (std::memcmp(package1 + 0x10, "20190314", 8) == 0) {
                        return ams::TargetFirmware_8_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20190531", 8) == 0) {
                        return ams::TargetFirmware_8_1_0;
                    } else if (std::memcmp(package1 + 0x10, "20190809", 8) == 0) {
                        return ams::TargetFirmware_9_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20191021", 8) == 0) {
                        return ams::TargetFirmware_9_1_0;
                    } else if (std::memcmp(package1 + 0x10, "20200303", 8) == 0) {
                        return ams::TargetFirmware_10_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20201030", 8) == 0) {
                        return ams::TargetFirmware_11_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20210129", 8) == 0) {
                        return ams::TargetFirmware_12_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20210422", 8) == 0) {
                        return ams::TargetFirmware_12_0_2;
                    } else if (std::memcmp(package1 + 0x10, "20210607", 8) == 0) {
                        return ams::TargetFirmware_12_1_0;
                    } else if (std::memcmp(package1 + 0x10, "20210805", 8) == 0) {
                        return ams::TargetFirmware_13_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20220105", 8) == 0) {
                        return ams::TargetFirmware_13_2_1;
                    } else if (std::memcmp(package1 + 0x10, "20220209", 8) == 0) {
                        return ams::TargetFirmware_14_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20220801", 8) == 0) {
                        return ams::TargetFirmware_15_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20230111", 8) == 0) {
                        return ams::TargetFirmware_16_0_0;
                    } else if (std::memcmp(package1 + 0x10, "20230906", 8) == 0) {
                        return ams::TargetFirmware_17_0_0;

there is no time code, only date code, so I don't know if it will be useful..
 
  • Like
Reactions: Muxi

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,279
Trophies
3
XP
12,046
Country
Poland
Oh, the numeric code has 6 digits more than all the others. Does that make a difference?
Provided source code by you has exact count of digits as my number? Yes, it is a difference, because your payload relies on longer ones, while new payloads don't hardcode last 6 digits. So you cannot use those shorter ones with your payload without rewriting some portion of code.
 
  • Like
Reactions: Muxi

Muxi

Well-Known Member
OP
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,120
Country
Germany
Was the code from you for FW 17.0.0? Are the other codes not needed when you are on FW 17.0.0? So it will work from FW 1.0.0 - 11.0.1 and FW 17.0.0. FW 12.0.0 - 16.1.0 is therefore not supported.

I have now added so. Is that right?

Code:
static const pkg1_id_t _pkg1_ids[] = {
    { "20161121183008", 0 }, //1.0.0
    { "20170210155124", 0 }, //2.0.0 - 2.3.0
    { "20170519101410", 1 }, //3.0.0
    { "20170710161758", 2 }, //3.0.1 - 3.0.2
    { "20170921172629", 3 }, //4.0.0 - 4.1.0
    { "20180220163747", 4 }, //5.0.0 - 5.1.0
    { "20180802162753", 5 }, //6.0.0 - 6.1.0
    { "20181107105733", 6 }, //6.2.0
    { "20181218175730", 7 }, //7.0.0
    { "20190208150037", 7 }, //7.0.1
    { "20190314172056", 7 }, //8.0.0 - 8.0.1
    { "20190531152432", 8 }, //8.1.0
    { "20190809135709", 9 }, //9.0.0 - 9.0.1
    { "20191021113848", 10}, //9.1.0
    { "20200303104606", 10}, //10.0.0 - 10.2.0
    { "20201030110855", 10}, //11.0.0 - 11.0.1
    { "20230906134551", 16}, //17.0.0+
    { NULL } //End.
};
Post automatically merged:

while leaving bootloader folder from newer version
However, I took the bootloader folder of version 6.0.6 and overwrote all the data on the SD card. Apparently it is not because of that. I also deleted the update.bin, although I don't think that did much.

The code with the longer row of numbers is the original code of this payload. The code with the lower number row was from the Tegra Explorer predecessor version source code, which I took because higher FW versions than 11.0.1 were also supported there.
Post automatically merged:

Just try to run 17.0.0 with some old Hekate, you will get number on the left as part of error screen.
Only for the future:
Could you please post me a step by step guide on how to proceed to get future pkg1 IDs? Currently I have an emuMMC running FW 17.0.0 with Hekate 6.0.7/NYX 1.5.6 and AMS 1.6.2. This should serve as a starting point.
I'm really only concerned with knowing what to replace, and what to delete, in the existing installation.

btw:
I had already tried this with the Hekate predecessor version, but failed. The desired error message with the pkg1 ID was not output. Obviously I must have done something wrong. Therefore this request. Thanks in advance for your efforts.
 
Last edited by Muxi,

Muxi

Well-Known Member
OP
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,120
Country
Germany
I have now been able to collect all the PKG1 IDs that have been released so far from various sources and now have everything up to FW 17.0.0 in full. Since I have not received a reply to my last request, does anyone know of any tools that are currently still supported from whose source code I could take future PKG1 IDs?
Code:
static const pkg1_id_t _pkg1_ids[] = {
    { "20161121183008", 0 }, //  1.0.0
    { "20170210155124", 0 }, //  2.0.0 - 2.3.0
    { "20170519101410", 1 }, //  3.0.0
    { "20170710161758", 2 }, //  3.0.1 - 3.0.2
    { "20170921172629", 3 }, //  4.0.0 - 4.1.0
    { "20180220163747", 4 }, //  5.0.0 - 5.1.0
    { "20180802162753", 5 }, //  6.0.0 - 6.1.0
    { "20181107105733", 6 }, //  6.2.0
    { "20181218175730", 7 }, //  7.0.0
    { "20190208150037", 7 }, //  7.0.1
    { "20190314172056", 7 }, //  8.0.0 - 8.0.1
    { "20190531152432", 8 }, //  8.1.0
    { "20190809135709", 9 }, //  9.0.0 - 9.0.1
    { "20191021113848", 10}, //  9.1.0
    { "20200303104606", 10}, // 10.0.0 - 10.2.0
    { "20201030110855", 10}, // 11.0.0 - 11.0.1
    { "20210129111626", 10}, // 12.0.0 - 12.0.1
    { "20210422145837", 10}, // 12.0.2 - 12.0.3
    { "20210607122020", 11}, // 12.1.0.
    { "20210805123730", 12}, // 13.0.0 - 13.2.0
    { "20220105094454", 12}, // 13.2.1.
    { "20220209100018", 13}, // 14.0.0 - 14.1.2
    { "20220801142548", 14}, // 15.0.0 - 15.0.1
    { "20230111100014", 15}, // 16.0.0 - 16.1.0
    { "20230906134551", 16}, // 17.0.0
    { NULL } //End.
};
 
Last edited by Muxi,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Lol rappers still promoting crypto