ScePromoterUtil

From Vita Development Wiki
Jump to navigation Jump to search

ScePromoterUtil is a wrapper for SceShellSvc calls that install applications to LiveArea. Specifically, it takes contents decrypted and extracted from packages and moves them to the right directory and adds an icon to LiveArea.

Module

Known NIDs

Version Name World Privilege NID
1.80 ScePromoterUtil Non-secure User 0xB31C2D5C
3.60 ScePromoterUtil Non-secure User 0x770E22E0

Libraries

Known NIDs

Version Name World Visibility NID
1.69 ScePromoterUtil Non-secure User 0x31F237B6

ScePromoterUtil

scePromoterUtilityInit

This sets up the library. Call it immediately after loading it.

Version NID
1.69 0x93451536
int scePromoterUtilityInit(void);

scePromoterUtilityExit

This shuts down the library. Call it immediately before unloading it.

Version NID
1.69 0xC95D24A6
int scePromoterUtilityExit(void);

scePromoterUtilityDeletePkg

Deletes an icon from LiveArea.

Version NID
1.80 0x7D46752F
int scePromoterUtilityDeletePkg(void *unk);

scePromoterUtilityUpdateLiveArea

Updates the LiveArea XML.

Version NID
1.80 0x17D73ECA
typedef struct {
    char titleid[12]; // target app
    char path[128]; // directory of extracted LA update data
} promoter_la_update_t;
int scePromoterUtilityUpdateLiveArea(promoter_la_update_t *args);

scePromoterUtilityPromotePkg

Installs the extracted content at path to the right location and add a LiveArea icon.

Version NID
1.80 0x716C81F4
int scePromoterUtilityPromotePkg(char *path, int unk); // set unk = 0

scePromoterUtilityPromotePkgWithRif

Same as above but also generates a fixed RIF for the installed package.

Version NID
1.69 0x86641BC6
int scePromoterUtilityPromotePkgWithRif(char *path, int unk); // set unk = 0

scePromoterUtilityGetState

The above two functions happen asynchronously. *state will be set to 1 when the operation is done.

Version NID
1.69 0xABEC74D2
int scePromoterUtilityGetState(int *state);

scePromoterUtilityGetResult

After scePromoterUtilityGetState is set to 1, this will get the result of the operation.

Version NID
1.69 0x49B473F0
int scePromoterUtilityGetResult(int *res);

scePromoterUtilityRemoveSavedata

Version NID
3.60 0xCB0A59B0

Promoter Heartbeat

When *beat is non-zero, the promote process is still alive.

Version NID
3.60 0x395739DF
int promoter_heartbeat(int *beat);