ScePromoterUtil: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
 
Line 176: Line 176:
<source lang="c">int promoter_heartbeat(int *beat);</source>
<source lang="c">int promoter_heartbeat(int *beat);</source>


 
[[Category:ARM]]
[[Category:Modules]][[Category:Usermode]]
[[Category:Usermode]]
[[Category:Modules]]
[[Category:Library]]

Latest revision as of 21:24, 1 May 2023

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

 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?

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