Advertisement
Silicaly

Untitled

May 25th, 2017
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #include <psp2/ctrl.h>
  6. #include <psp2/io/fcntl.h>
  7. #include <psp2/kernel/threadmgr.h>
  8. #include <psp2/io/stat.h>
  9. #include <psp2/sysmodule.h>
  10. #include "sqlite3.h"
  11. #include "graphics.h"
  12.  
  13. #define printf psvDebugScreenPrintf
  14.  
  15. #define DEBUG 0
  16.  
  17. #if DEBUG
  18. #define LOG psvDebugScreenPrintf
  19. #else
  20. #define LOG(...)
  21. #endif
  22.  
  23. #define APP_DB "ur0:shell/db/app.db"
  24.  
  25. static unsigned buttons[] = {
  26. SCE_CTRL_SELECT,
  27. SCE_CTRL_START,
  28. SCE_CTRL_UP,
  29. SCE_CTRL_RIGHT,
  30. SCE_CTRL_DOWN,
  31. SCE_CTRL_LEFT,
  32. SCE_CTRL_LTRIGGER,
  33. SCE_CTRL_RTRIGGER,
  34. SCE_CTRL_TRIANGLE,
  35. SCE_CTRL_CIRCLE,
  36. SCE_CTRL_CROSS,
  37. SCE_CTRL_SQUARE,
  38. };
  39.  
  40. int get_key(void) {
  41. static unsigned prev = 0;
  42. SceCtrlData pad;
  43. while (1) {
  44. memset(&pad, 0, sizeof(pad));
  45. sceCtrlPeekBufferPositive(0, &pad, 1);
  46. unsigned new = prev ^ (pad.buttons & prev);
  47. prev = pad.buttons;
  48. for (int i = 0; i < sizeof(buttons)/sizeof(*buttons); ++i)
  49. if (new & buttons[i])
  50. return buttons[i];
  51.  
  52. sceKernelDelayThread(1000); // 1ms
  53. }
  54. }
  55.  
  56.  
  57. void sql_simple_exec(sqlite3 *db, const char *sql) {
  58. char *error = NULL;
  59. int ret = 0;
  60. ret = sqlite3_exec(db, sql, NULL, NULL, &error);
  61. if (error) {
  62. printf("Failed to execute %s: %s\n", sql, error);
  63. sqlite3_free(error);
  64. goto fail;
  65. }
  66. return;
  67. fail:
  68. sqlite3_close(db);
  69. }
  70.  
  71. void remove_app() {
  72. int ret;
  73. char sql[0x1000];
  74. char *error = NULL;
  75.  
  76. sqlite3 *db;
  77. ret = sqlite3_open(APP_DB, &db);
  78. if (ret) {
  79. printf("Failed to open the database: %s\n", sqlite3_errmsg(db));
  80. goto fail;
  81. }
  82.  
  83. sql_simple_exec(db, "BEGIN TRANSACTION;");
  84. sql_simple_exec(db, "UPDATE tbl_appinfo_icon SET titleid=REPLACE(titleid,'PKGE00001','NPXS10031');");
  85. sql_simple_exec(db, "COMMIT TRANSACTION;");
  86. sql_simple_exec(db, "BEGIN TRANSACTION;");
  87. sql_simple_exec(db, "UPDATE tbl_appinfo_icon SET title=REPLACE(title,'Enable Package Installer','★Package Installer');");
  88. sql_simple_exec(db, "COMMIT TRANSACTION;");
  89. sqlite3_close(db);
  90. db = NULL;
  91.  
  92. return;
  93.  
  94. fail:
  95. if (db)
  96. sqlite3_close(db);
  97. psvDebugScreenSetFgColor(COLOR_RED);
  98. printf("FAILURE! Reboot your PSTV/PSV into recovery mode and select 'rebuild database'\n");
  99.  
  100. }
  101.  
  102. int main(void) {
  103. int key = 0;
  104. remove_app();
  105. scePowerRequestColdReset();
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement