mirror of
https://wiilab.wiimart.org/wiimart/WiiMart-Patcher
synced 2025-09-05 21:11:13 +02:00
Add EC Configuration Path patch
This commit is contained in:
parent
c8559722ea
commit
8fe87fb4d5
@ -8,3 +8,4 @@ It does not attempt to handle things such as client certificates or user passwor
|
|||||||
- [`patch_custom_ca_ios.md`](patch_custom_ca_ios.md): The logistics of inserting our custom CA into IOS as well for EC usage.
|
- [`patch_custom_ca_ios.md`](patch_custom_ca_ios.md): The logistics of inserting our custom CA into IOS as well for EC usage.
|
||||||
- [`patch_base_domain.md`](patch_base_domain.md): Information about what URLs are present within the main DOL and information about patching them.
|
- [`patch_base_domain.md`](patch_base_domain.md): Information about what URLs are present within the main DOL and information about patching them.
|
||||||
- [`patch_ec_title_check.md`](patch_ec_title_check.md): Information about title checks run by EC, and why they were negated.
|
- [`patch_ec_title_check.md`](patch_ec_title_check.md): Information about title checks run by EC, and why they were negated.
|
||||||
|
- [`patch_ec_cfg_path.md`](patch_ec_cfg_path.md): An explanation over why the path of `ec.cfg` is changed.
|
31
docs/patch_ec_cfg_path.md
Normal file
31
docs/patch_ec_cfg_path.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Patch: Change EC Configuration Path
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
We want to store our own custom credentials for the Wii Shop Channel.
|
||||||
|
Between provisioning tickets, identifying users, and permitting download, this is essential to our operation.
|
||||||
|
|
||||||
|
However, this file likely contains legitimate identifiers to Nintendo's services. We do not want to have users unable to download purchases of any kind should they wish.
|
||||||
|
|
||||||
|
While Nintendo's servers may reprovision credentials as part of syncing, we do not want to risk the possibility of such not occurring for whatever reason.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
The Wii Shop Channel provides a file at `/title/00010002/48414241/data/ec.cfg`. It is utilized by every application that invokes EC - DLC applications, rentals, the Wii Shop, so forth.
|
||||||
|
|
||||||
|
This file contains persistent data, such as the provisioned account ID and device token, utilized for authentication. It additionally persists values such as the last sync time.
|
||||||
|
|
||||||
|
Other identifiers can be set via `ec.getPersistentValue(name)` or `ec.setPersistentValue(name, value)` within [ECommerceInterface](https://docs.oscwii.org/wii-shop-channel/js/ec/ecommerceinterface).
|
||||||
|
|
||||||
|
It is quite important that our changes do not modify or overwrite the user's existing credentials.
|
||||||
|
|
||||||
|
We evaluated several solutions:
|
||||||
|
- Not using account identifiers, and accepting any existing identifiers that hit our server.
|
||||||
|
- While most likely possible, it would be nice to not need to do so. Additionally for new clients, credentials we generate will not be accepted by Nintendo later.
|
||||||
|
- Similar to the above, utilizing our own set of identifiers via the exposed JS APIs with custom value names.
|
||||||
|
- This would prove complicated for similar reasons to the above.
|
||||||
|
- Modifying the configuration file's name.
|
||||||
|
- This is the most concise solution, and was chosen.
|
||||||
|
|
||||||
|
## Execution
|
||||||
|
We replace the only instance of `ec.cfg` with `osc.cfg`, where OSC refers to the Open Shop Channel.
|
||||||
|
|
||||||
|
A similar change will be necessary for any DLC titles wishing to take advantage of the Open Shop Channel's backend.
|
@ -94,4 +94,5 @@ func applyDefaultPatches() {
|
|||||||
applyPatchSet("Load Custom CA within IOS", LoadCustomCA())
|
applyPatchSet("Load Custom CA within IOS", LoadCustomCA())
|
||||||
applyPatchSet("Change Base Domain", PatchBaseDomain())
|
applyPatchSet("Change Base Domain", PatchBaseDomain())
|
||||||
applyPatchSet("Negate EC Title Check", NegateECTitle)
|
applyPatchSet("Negate EC Title Check", NegateECTitle)
|
||||||
|
applyPatchSet("Change EC Configuration Path", PatchECCfgPath)
|
||||||
}
|
}
|
||||||
|
11
patch_ec_cfg_path.go
Normal file
11
patch_ec_cfg_path.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
var PatchECCfgPath = PatchSet{
|
||||||
|
Patch{
|
||||||
|
Name: "Change EC Configuration Path",
|
||||||
|
AtOffset: 3319968,
|
||||||
|
|
||||||
|
Before: []byte("ec.cfg\x00\x00"),
|
||||||
|
After: []byte("osc.cfg\x00"),
|
||||||
|
},
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user