Following the JSON Format details, PS4 PKGs via SEN and the JSON Entitlement Grabber Add-on this weekend developer hosamn made available a PS4-JSON-2-SHA1 Python Script for use in checking the hashes of PlayStation 4 game packages.
Download: PS4-json-2-sha1-master.zip / GIT
This comes proceeding the PS4 PKG Integrity Checker for PS4 packages and the PS4 Title Update Checker, and from the README.md, to quote: PS4-json-2-sha1
Generate SHA1 integrity check files for PS4 game PKG files from official json data. eg: JSON File:
Resulting files can be used to check PKG files with any hash checker like HashCheck Shell Extension.
From ps4_json_2_sha1.py:
Download: PS4-json-2-sha1-master.zip / GIT
This comes proceeding the PS4 PKG Integrity Checker for PS4 packages and the PS4 Title Update Checker, and from the README.md, to quote: PS4-json-2-sha1
Generate SHA1 integrity check files for PS4 game PKG files from official json data. eg: JSON File:
Code:
http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA02299_00/19/f_bfcf616f667a19707e0f925b3944e5875a83253b7e776f91c88cd8d095a2911f/f/UP9000-CUSA02299_00-MARVELSSPIDERMAN-A0117-V0100.json
From ps4_json_2_sha1.py:
Code:
import json
import os
# Change the working directory to the py file dir:
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# Get a list of current dir json files:
for root, dirs, files in os.walk("."):
# print(len(files), files)
json_files = [f for f in files if f.endswith('.json')]
break # break after reporting current dir files and don't go deeper
# print(json_files)
for json_file in json_files:
out_file_name = json_file.split('.')[0]+'.sha1'
with open(json_file) as opf:
data = json.loads(opf.read())
for i in range(data['numberOfSplitFiles']):
piece_name = data['pieces'][i]['url'].split('/')[-1]
piece_hash = data['pieces'][i]['hashValue']
file_line = piece_hash + ' *' + piece_name
with open(out_file_name, 'a') as outt:
outt.write(file_line+'\n')