mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-29 23:32:23 +00:00
sm: change InstallMitM to wait for registration instead of 0xE15
This commit is contained in:
parent
b6684ff845
commit
83025080c8
5 changed files with 25 additions and 15 deletions
|
@ -62,11 +62,6 @@ void __appInit(void) {
|
|||
fatalSimple(MAKERESULT(Module_Libnx, LibnxError_InitFail_SM));
|
||||
}
|
||||
|
||||
rc = fsInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(MAKERESULT(Module_Libnx, LibnxError_InitFail_FS));
|
||||
}
|
||||
|
||||
CheckAtmosphereVersion(CURRENT_ATMOSPHERE_VERSION);
|
||||
}
|
||||
|
||||
|
@ -95,6 +90,14 @@ int main(int argc, char **argv)
|
|||
/* Create fsp-srv mitm. */
|
||||
AddMitmServerToManager<FsMitmService>(server_manager, "fsp-srv", 61);
|
||||
|
||||
/* Connect to FS */
|
||||
{
|
||||
Result rc = fsInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(MAKERESULT(Module_Libnx, LibnxError_InitFail_FS));
|
||||
}
|
||||
}
|
||||
|
||||
if (R_FAILED(threadCreate(&sd_initializer_thread, &Utils::InitializeSdThreadFunc, NULL, 0x4000, 0x15, 0))) {
|
||||
/* TODO: Panic. */
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 05015b9354d3df80e0836aa95d1d4dcfc2aef4b7
|
||||
Subproject commit f9d38856f335c4cb0ed3c7253d9319a965815af2
|
|
@ -123,8 +123,7 @@ static void MountSdCard() {
|
|||
fsdevMountSdmc();
|
||||
}
|
||||
|
||||
void EmbeddedBoot2::Main() {
|
||||
/* Wait until fs.mitm has installed itself. We want this to happen as early as possible. */
|
||||
static void WaitForFsMitm() {
|
||||
bool fs_mitm_installed = false;
|
||||
|
||||
Result rc = smManagerAmsInitialize();
|
||||
|
@ -138,6 +137,11 @@ void EmbeddedBoot2::Main() {
|
|||
svcSleepThread(1000ull);
|
||||
}
|
||||
smManagerAmsExit();
|
||||
}
|
||||
|
||||
void EmbeddedBoot2::Main() {
|
||||
/* Wait until fs.mitm has installed itself. We want this to happen as early as possible. */
|
||||
WaitForFsMitm();
|
||||
|
||||
/* psc, bus, pcv is the minimal set of required titles to get SD card. */
|
||||
/* bus depends on pcie, and pcv depends on settings. */
|
||||
|
|
|
@ -60,11 +60,6 @@ void __appInit(void) {
|
|||
fatalSimple(MAKERESULT(Module_Libnx, LibnxError_InitFail_SM));
|
||||
}
|
||||
|
||||
rc = setsysInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(rc);
|
||||
}
|
||||
|
||||
CheckAtmosphereVersion(CURRENT_ATMOSPHERE_VERSION);
|
||||
}
|
||||
|
||||
|
@ -89,9 +84,17 @@ int main(int argc, char **argv)
|
|||
/* TODO: What's a good timeout value to use here? */
|
||||
auto server_manager = new SetMitmManager(1);
|
||||
|
||||
/* Create fsp-srv mitm. */
|
||||
/* Create set:sys mitm. */
|
||||
AddMitmServerToManager<SetSysMitmService>(server_manager, "set:sys", 4);
|
||||
|
||||
/* Connect to set:sys. */
|
||||
{
|
||||
Result rc = setsysInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(rc);
|
||||
}
|
||||
}
|
||||
|
||||
/* Loop forever, servicing our services. */
|
||||
server_manager->Process();
|
||||
|
||||
|
|
|
@ -467,7 +467,7 @@ Result Registration::InstallMitmForPid(u64 pid, u64 service, Handle *out, Handle
|
|||
/* Verify the service exists. */
|
||||
Registration::Service *target_service = GetService(service);
|
||||
if (target_service == NULL) {
|
||||
return 0xE15;
|
||||
return RESULT_DEFER_SESSION;
|
||||
}
|
||||
|
||||
/* Verify the service isn't already being mitm'd. */
|
||||
|
|
Loading…
Reference in a new issue