From Vita Development Wiki
Revision as of 18:11, 8 June 2017 by Motoharu (talk | contribs)
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.


Known NIDs

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


Known NIDs

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



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

Version NID
1.69 0x93451536
int scePromoterUtilityInit(void);


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

Version NID
1.69 0xC95D24A6
int scePromoterUtilityExit(void);


Deletes an icon from LiveArea.

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


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);


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


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


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);


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

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


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);