From Vita Development Wiki
Revision as of 21:24, 1 May 2023 by Princess of Sleeping (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.


Version Name World Privilege
1.80-3.60 ScePromoterUtil Non-secure User


Known NIDs

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


 int ScePromoterUtil_0D76CD38(const char *a1, int a2,int a3);
 int ScePromoterUtil_30A36AAF(const char *a1, int a2);
 int ScePromoterUtil_395739DF(int *a1);
 int ScePromoterUtil_59A6CDAE(int *a1);
 int ScePromoterUtil_5FF5CACF(const char *a1, int a2, int a3);
 int ScePromoterUtil_6A547384(const char *a1, int flags, void *a3);
 int ScePromoterUtil_739BC292(const char *a1, int a2, int a3);
 ScePromoterUtil_8494C742: same as scePromoterUtilityPromoteImport
 int ScePromoterUtil_999AD6CE(int *a1, int *a2, int *a3);
 int ScePromoterUtil_B27DA268(const char *a1, void *a2);
 int ScePromoterUtil_D4E87DCB(const char *path);
 int ScePromoterUtil_FDCCBE33(const char *a1); // Promot?


Version NID
1.69-3.60 0x93451536

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

int scePromoterUtilityInit(void);


Version NID
1.69-3.60 0xC95D24A6

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

int scePromoterUtilityExit(void);


Version NID
1.80-3.60 0x7D46752F

Deletes an icon from LiveArea.

int scePromoterUtilityDeletePkg(void *unk);


Version NID
1.80-3.60 0x17D73ECA

Updates the LiveArea XML.

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


Version NID
3.60 0x82E69783


Version NID
1.80-3.60 0x716C81F4

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

int scePromoterUtilityPromotePkg(char *path, int unk); // set unk = 0


Version NID
1.69-3.60 0x86641BC6

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

int scePromoterUtilityPromotePkgWithRif(char *path, int unk); // set unk = 0


Version NID
3.60 0x4B37808F


Version NID
3.60 0x1F5EA997


Version NID
1.69-3.60 0xABEC74D2

The scePromoterUtilityPromotePkg and scePromoterUtilityPromotePkgWithRif functions happen asynchronously. *state will be set to 1 when the operation is done.

int scePromoterUtilityGetState(int *state);


Version NID
1.69-3.60 0x49B473F0

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

int scePromoterUtilityGetResult(int *res);


Version NID
3.60 0xCB0A59B0


Version NID
3.60 0xBA9871E5

Promoter Heartbeat

Version NID
3.60 0x395739DF

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

int promoter_heartbeat(int *beat);