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

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

Libraries

Known NIDs

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

ScePromoterUtil

scePromoterUtilityInit

Version NID
1.69-3.60 0x93451536

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

int scePromoterUtilityInit(void);

scePromoterUtilityExit

Version NID
1.69-3.60 0xC95D24A6

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

int scePromoterUtilityExit(void);

scePromoterUtilityDeletePkg

Version NID
1.80-3.60 0x7D46752F

Deletes an icon from LiveArea.

int scePromoterUtilityDeletePkg(void *unk);

scePromoterUtilityUpdateLiveArea

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

scePromoterUtilityUpdateUpgradableStatus

Version NID
3.60 0x82E69783

scePromoterUtilityPromotePkg

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

scePromoterUtilityPromotePkgWithRif

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

scePromoterUtilityPromoteImport

Version NID
3.60 0x4B37808F

scePromoterUtilityGetSize

Version NID
3.60 0x1F5EA997

scePromoterUtilityGetState

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

scePromoterUtilityGetResult

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

scePromoterUtilityRemoveSavedata

Version NID
3.60 0xCB0A59B0

scePromoterUtilityCheckExist

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