Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
Status
Not open for further replies.
Recently @stooged lent a hand sharing both details with source code on Backing Up and Restoring the PS4 Database, and he followed up with a handy DbBackup.bin Payload compiled for PS4 4.05 OFW users to backup their PlayStation 4 database to a USB Drive alongside one for dumping save data below. :love:

Download: DbBackup.zip / Source Code / DB_SG_Backup.zip (8.79 KB - dumps save data into a folder called GameSaves) / DB_SG_Backup_v2.zip (8.27 KB - Dumps All User Accounts) / DB_SG_Backup3.zip (8.82 KB - Adds Notification Messages from 2much4u) / DB_Backup_455.zip (Updated for 4.55) / usb_455_db_backup.zip (0.02 MB) / Cache-Install: ApplicationCache.db / DB_SG_Backup-50X (Latest) / GIT

To quote from his recent post with usage instructions:

just put a usb stick/drive into the usb port and run the DbBackup.bin payload

it will save the addcont.db and app.db files inside a folder called DB_Dackup on the usb drive.

if you do not use a usb stick/drive it will backup the database into the /system_data/priv/mms/ folder on the ps4 and it will be called app.db_backup.

to restore the db just ftp into the /system_data/priv/mms/ directory and upload your backup copy.

credit to @XVortex for the neat way to check which usb port has the drive in it in their ps4dumper source, I tried a few other things with no decent result but @XVortex had a simple method to do the trick :)
DbBackup.bin Payload Backup PS4 Database to USB Drive by Stooged.jpg
 

Comments

How to run payload?

1- Download the latest Al-Azif ps4-exploit-host v0.3.19
(https://github.com/Al-Azif/ps4-exploit-host/releases)

2- Put DbBackup.bin into payloads folder

3- If using Windows, create a batch file and put this command inside:
ps4-exploit-host.exe --autosend DbBackup.bin

4- Execute the command and select IDC exploit in User's Guide.
Your app.db will be saved inside its folder on the PS4 (as a backup file) if you didn't use a USB device

5- Then if you wish, you can run HEN right after (select IDC)
(ps4-exploit-host.exe --autosend ps4hen.bin)
I would recommend that you reboot the PS4 first, if you've never tried this before.
 
I did the instructions as suggested but the 1st time i ran it thru idc on Ps4 it shut off saving nothing in the process. I redid it but it just sits at the idc screen, going on 30 mins now??
 
Is there manual way to add all your games to database, my ps4 just crashed and rebuilded database and I didnt want to create backup till tonight.. tough luck right?
 
you can do it if the games are still installed (you have not formatted) and you have time to rebuild the paths/names using sql

it would be probably quicker to reinstall the games if you have lots, I have 133 installed on mine and I wouldn't try this but if you only have a few you can do this.

first you would dump your current app.db so you have the db to work with then you would open it with a db editor like this one DB Browser for SQLite

once you open the app db you need to find your user id so you look for the table tbl_appbrowse_ with a random number on it that random number is the user id

then you should be able to add each games info and put your user id into the XXXXXXXX part of this sql statement and once done execute it into the app.db with the sqlitebrowser.

Code:
BEGIN TRANSACTION;

INSERT INTO `tbl_appbrowse_XXXXXXXXXXX` VALUES ('CUSA00002','EP9000-CUSA00002_00-KZ4RELEASE000041','KILLZONE™ SHADOW FALL','/user/appmeta/CUSA00002','2018-02-03 21:47:59.414',0,0,9,1,100,256,179,5,1,'gd',0,0,0,0,NULL,NULL,NULL,40310767616,'2018-02-03 21:47:59.414',0,'game',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,NULL);

COMMIT;


then you will have do do one of these for each game and fill out all of the data to match the game

Code:
BEGIN TRANSACTION;

INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_access_index',179);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_contents_status',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_last_access_time','2018-02-03 21:39:17.289');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_mtime','2018-02-03 21:47:59.397');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_promote_time','2018-02-03 21:47:59.414');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_size',40310767616);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#_update_index',163);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','#exit_type',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','APP_TYPE',1);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','APP_VER','01.00');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','ATTRIBUTE',2);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','ATTRIBUTE_INTERNAL',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','CATEGORY','gd');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','CONTENT_ID','EP9000-CUSA00002_00-KZ4RELEASE000041');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','DISP_LOCATION_1',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','DISP_LOCATION_2',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','DOWNLOAD_DATA_SIZE',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','FORMAT','obs');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','PARENTAL_LEVEL',9);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_1',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_2',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_3',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_4',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_5',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_6',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SERVICE_ID_ADDCONT_ADD_7',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','SYSTEM_VER',38830080);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','TITLE','KILLZONE™ SHADOW FALL');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','TITLE_08','KILLZONE™: В ПЛЕНУ СУМРАКА');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','TITLE_ID','CUSA00002');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','USER_DEFINED_PARAM_1',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','USER_DEFINED_PARAM_2',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','USER_DEFINED_PARAM_3',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','USER_DEFINED_PARAM_4',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','VERSION','01.01');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_contents_ext_type',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_contents_location',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_current_slot',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_disable_live_detail',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_metadata_path','/user/appmeta/CUSA00002');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_org_path','/user/app/CUSA00002');
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_path_info',256);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_path_info_2',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_sort_priority',100);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_uninstallable',1);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_view_category',0);
INSERT INTO `tbl_appinfo` VALUES ('CUSA00002','_working_status',0);


COMMIT;


all of that is for 1 game most of the data is generic and will work for most games but all the paths/names/ids will have to match each game properly.

this is why I said it is probably quicker to reinstall the games, when you reinstall the games they will overwrite and data left behind from when they were installed before you lost the db.
 
Status
Not open for further replies.
Back
Top