Editing Files on the PS4

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
''See also: [[Partitions]]''


== PS4 filesystem content ==
== Partitions ==
{| class="wikitable sortable"
|-
! mountpoint !! size !! remarks
|-
| /dev/sdc17 || 1 GiB || 
|-
| /dev/sdc31 || 16 GiB || 
|-
| /dev/sdc27 || 420.12 GiB || 
|-
| /dev/sdc13 || 8 GiB || 
|-
| /dev/sdc9 || 1 GiB || 
|-
| /dev/sdc10 || 1 GiB || 
|-
| /dev/sdc11 || 1 GiB || 
|-
| /dev/sdc12 || 1 GiB || 
|-
| /dev/sdc19 || 8 GiB || 
|-
| /dev/sdc1 || 512 MiB || 
|-
| /dev/sdc3 || 1 GiB || 
|-
| /dev/sdc5 || 16 MiB || 
|-
| /dev/sdc7 || 128 MiB || 
|-
| /dev/sdc29 || 1 GiB || 
|-
| /dev/sdc25 || 6 GiB || 
|-
|}


v1 - this is not complete at all and may contain mistakes regarding folder structure! (Of course it contain a lot of mistake. There are not dll but sdll ...)
== Mountpoints ==
 
;Hostdevices:
├── ABCDE12345                                                                ABCDE12345 is a placeholder. This folder name is not static but different per console. (ABCDE12345 is not a placeholder but a random mount point for apps sandboxing)
* APP_HOME (DATA)
│   ├── common
* APP_HOME (HOST)
│   │   └── lib
│   │      ├── libScePsm_aot.sprx
│   │      ├── libSceVshCommon_aot.sprx
│   │      ├── mscorlib.dll
│   │      ├── Sce.PlayStation.Core.dll
│   │      ├── Sce.PlayStation.HighLevel.UI2.dll
│   │      ├── Sce.PlayStation.Orbis.dll
│   │      ├── Sce.Vsh.AppDbWrapper.dll
│   │      ├── Sce.Vsh.AppInstUtilWrapper.dll
│   │      ├── Sce.Vsh.dll
│   │      ├── Sce.Vsh.Gls.NativeCall.dll
│   │      ├── Sce.Vsh.GriefReportStorage.dll
│   │      ├── Sce.Vsh.KernelSysWrapper.dll
│   │      ├── Sce.Vsh.MarlinDownloaderWrapper.dll
│   │      ├── Sce.Vsh.Messages.BgAccessLib.dll
│   │      ├── Sce.Vsh.Messages.StorageAccessLib.dll
│   │      ├── Sce.Vsh.Np.Asm.dll
│   │      ├── Sce.Vsh.Np.Common.dll
│   │      ├── Sce.Vsh.Np.Manager.dll
│   │      ├── Sce.Vsh.Np.ServiceChecker.dll
│   │      ├── Sce.Vsh.Np.Sns.dll
│   │      ├── Sce.Vsh.Np.Trophy.dll
│   │      ├── Sce.Vsh.Orbis.AbstractStorage.dll
│   │      ├── Sce.Vsh.Orbis.Bgft.dll
│   │      ├── Sce.Vsh.PartyCommon.dll
│   │      ├── Sce.Vsh.ProfileCache.dll
│   │      ├── Sce.Vsh.PsnUtil.dll
│   │      ├── Sce.Vsh.Registry.dll
│   │      ├── Sce.Vsh.SQLite.dll
│   │      ├── Sce.Vsh.UpdateServiceWrapper.dll
│   │      ├── Sce.Vsh.UserServiceWrapper.dll
│   │      ├── Sce.Vsh.VoiceMsg.VoiceMsgWrapper.dll
│   │      ├── Sce.Vsh.Webbrowser.XdbWrapper.dll
│   │      ├── Sce.Vsh.Webbrowser.XutilWrapper.dll
│   │      ├── Sce.Vsh.WebViewDialog.dll
│   │      ├── System.Core.dll
│   │      ├── System.dll
│   │      ├── System.Json.dll
│   │      ├── System.Runtime.Serialization.dll
│   │      ├── System.ServiceModel.dll
│   │      ├── System.ServiceModel.Web.dll
│   │      ├── System.Xml.dll
│   │      └── System.Xml.Linq.dll
│   └── priv
│      ├── cache
│      │   └── profile
│      │      └── 10000000
│      │          └── avatar.png
│      ├── home
│      │  └── 10000000.list
│      ├── lib
│      └── mms
│          └── app.db
├── dev                                                                      common devices are not listed, yet!
│   ├── cd0                                                                  cd0 == /mnt/disc0
│   ├── da0x0.crypt                                                          da0x0.crypt == /preinst
│   ├── da0x12.crypt                                                          da0x12.crypt == /update
│   ├── da0x13.crypt                                                          da0x13.crypt == /user
│   ├── da0x14.crypt                                                          da0x14.crypt == /eap_user
│   ├── da0x4.crypt                                                          da0x4.crypt == /system
│   ├── da0x5.crypt                                                          da0x5.crypt == /system_ex
│   ├── da0x9.crypt                                                          da0x9.crypt == /system_data
│   ├── da1s1                                                                da1s1 == /mnt/usb0
│  ├── iccnvs0                                                             
│  ├── iccnvs1                                                             
│  ├── iccnvs2                                                             
│  ├── iccnvs3                                                             
│  ├── iccnvs4                                                             
│  ├── iccnvs4                                                             
│  ├── sbram0                                                             
│  └── sflash0                                                             
├── eap_user
├── mnt
│   ├── app0                                                                  app0 is dynamicly created for the currently running process
│   │   ├── eboot.bin
│   │   └── psm                                                              psm folder exists if a system ui app is the current process. the whole ps4 system ui is based on psm, just like the psm for ps vita.
│   │      ├── Application
│   │      │   ├── Sce.Vsh.Accessor.Db.dll
│   │      │   ├── Sce.Vsh.Accessor.Db.Notify.dll
│   │      │   ├── Sce.Vsh.Accessor.dll
│   │      │   ├── Sce.Vsh.DbRecoveryUtilityWrapper.dll
│   │      │   ├── Sce.Vsh.DbRecoveryWrapper.dll
│   │      │   ├── Sce.Vsh.ErrorDialogUtilWrapper.dll
│   │      │   ├── Sce.Vsh.FileSelector.dll
│   │      │   ├── Sce.Vsh.Friend.dll
│   │      │   ├── Sce.Vsh.GameCustomData.dll
│   │      │   ├── Sce.Vsh.GriefReport.dll
│   │      │   ├── Sce.Vsh.JsExtension.dll
│   │      │   ├── Sce.Vsh.Lx.dll
│   │      │   ├── Sce.Vsh.Messages.dll
│   │      │   ├── Sce.Vsh.MimeType.dll
│   │      │   ├── Sce.Vsh.MusicCoreServerJsExWrapper.dll
│   │      │   ├── Sce.Vsh.Np.AppLaunchLink.dll
│   │      │   ├── Sce.Vsh.Np.RifManager.dll
│   │      │   ├── Sce.Vsh.Np.Tmdb.dll
│   │      │   ├── Sce.Vsh.Np.Webapi.dll
│   │      │   ├── Sce.Vsh.Orbis.BgftAccessor.dll
│   │      │   ├── Sce.Vsh.Orbis.CdlgServerNpCommerce.dll
│   │      │   ├── Sce.Vsh.Orbis.ContentManager.dll
│   │      │   ├── Sce.Vsh.Passcode.dll
│   │      │   ├── Sce.Vsh.SessionInvitation.dll
│   │      │   ├── Sce.Vsh.ShareServerPostWrapper.dll
│   │      │   ├── Sce.Vsh.ShellCoreUtilWrapper.dll
│   │      │   ├── Sce.Vsh.SyscallWrapper.dll
│   │      │   ├── Sce.Vsh.SysfileUtilWrapper.dll
│   │      │   ├── Sce.Vsh.SystemLoggerWrapper.dll
│   │      │   ├── Sce.Vsh.SysUtilWrapper.dll
│   │      │   ├── Sce.Vsh.VideoRecordingWrapper.dll
│   │      │   └── Sce.Vsh.VideoServiceWrapper.dll
│   │      └── libSceVsh_aot.sprx
│   ├── disc0
│   ├── sandbox
│   │   └── NPXS20001_0000
│   ├── unknown0                                                              unknown0 is not a real mnt name. mini-syscore.elf seems to be the kernel.
│   │  └── mini-syscore.elf  
│   │
│   └── usb0
├── preinst
├── preinst2
├── system
│   ├── common
│   │   └── lib                                                              anything inside here is linked to the NPXS20001 titleid (SceShellUI)
│   │      ├── libMonoCompilerBridge.sprx
│   │      ├── libMonoCompiler.sprx
│   │      ├── libMonoVirtualMachineBridge.sprx
│   │      ├── libMonoVirtualMachine.sprx
│   │      ├── libSceAbstractLocal.sprx
│   │      ├── libSceAbstractStorage.sprx
│   │      ├── libSceAbstractTwitter.sprx
│   │      ├── libSceAc3Enc.sprx
│   │      ├── libSceAjm.sprx
│   │      ├── libSceAppInstUtil.sprx
│   │      ├── libSceAudiodecCpuDdp.sprx
│   │      ├── libSceAudiodecCpuM4aac.sprx
│   │      ├── libSceAudiodecCpu.sprx
│   │      ├── libSceAudiodec.sprx
│   │      ├── libSceAudioIn.sprx
│   │      ├── libSceAudioOut.sprx
│   │      ├── libSceAvcap.sprx
│   │      ├── libSceAvSetting.sprx
│   │      ├── libSceBeisobmf.sprx
│   │      ├── libSceBemp2sys.sprx
│   │      ├── libSceBgft.sprx
│   │      ├── libSceCamera.sprx
│   │      ├── libSceCdlgUtilServer.sprx
│   │      ├── libSceCommonDialog.sprx
│   │      ├── libSceCompositeExt.sprx
│   │      ├── libSceCtrlp.sprx
│   │      ├── libSceDbg.sprx
│   │      ├── libSceDtsEnc.sprx
│   │      ├── libSceFontFt.sprx
│   │      ├── libSceFont.sprx
│   │      ├── libSceFreeTypeOt.sprx
│   │      ├── libSceGvMp4Parser.sprx
│   │      ├── libSceHidControl.sprx
│   │      ├── libSceHttp.sprx
│   │      ├── libSceImeDialog.sprx
│   │      ├── libSceIme.sprx
│   │      ├── libSceInjectedBundle.sprx
│   │      ├── libSceIpmi.sprx
│   │      ├── libSceJitBridge.sprx
│   │      ├── libSceJpegEnc.sprx
│   │      ├── libSceJpegParser.sprx
│   │      ├── libSceJscCompiler.sprx
│   │      ├── libSceJson.sprx
│   │      ├── libSceKbEmulate.sprx
│   │      ├── libSceKeyboard.sprx
│   │      ├── libSceM4aacEnc.sprx
│   │      ├── libSceManxWtf.sprx
│   │      ├── libSceMbus.sprx
│   │      ├── libSceMetadataReaderWriter.sprx
│   │      ├── libSceMusicCoreServerClientJsEx.sprx
│   │      ├── libSceMusicCoreServerClient.sprx
│   │      ├── libSceNetCtl.sprx
│   │      ├── libSceNet.sprx
│   │      ├── libSceNgs2.sprx
│   │      ├── libSceNpCommon.sprx
│   │      ├── libSceNpManager.sprx
│   │      ├── libSceNpMatching2.sprx
│   │      ├── libSceNpSns.sprx
│   │      ├── libSceNpTrophy.sprx
│   │      ├── libSceNpUtility.sprx
│   │      ├── libSceNpWebApi.sprx
│   │      ├── libSceOrbisCompat.sprx
│   │      ├── libScePad.sprx
│   │      ├── libScePigletv2VSH.sprx
│   │      ├── libScePlayGoDev.sprx
│   │      ├── libScePngDec.sprx
│   │      ├── libScePsm.sprx
│   │      ├── libSceRandom.sprx
│   │      ├── libSceRegMgr.sprx
│   │      ├── libSceRemotePlay.sprx
│   │      ├── libSceRtc.sprx
│   │      ├── libSceRudp.sprx
│   │      ├── libSceSaveData.sprx
│   │      ├── libSceScreenShot.sprx
│   │      ├── libSceShaccVSH.sprx
│   │      ├── libSceSsl.sprx
│   │      ├── libSceSysmodule.sprx
│   │      ├── libSceSystemService.sprx
│   │      ├── libSceSysUtil.sprx
│   │      ├── libSceUpdateService.sprx
│   │      ├── libSceUserService.sprx
│   │      ├── libSceVdecCore.sprx
│   │      ├── libSceVencCore.sprx
│   │      ├── libSceVideoCoreServerInterface.sprx
│   │      ├── libSceVideodec.sprx
│   │      ├── libSceVideoRecording.sprx
│   │      ├── libSceVisionManager.sprx
│   │      ├── libSceVoice.sprx
│   │      ├── libSceVsh_aot.sprx
│   │      ├── libSceVshCommon_aot.sprx
│   │      ├── libSceWebKit2.sprx
│   │      ├── libSceWeb.sprx
│   │      ├── libSceXml.sprx
│   │      ├── MonoCompiler.elf
│   │      ├── orbis-jsc-compiler.self
│   │      ├── SecureWebProcess.self
│   │      ├── WebProcessHTMLTile.self
│   │      └── WebProcess.self
│   ├── priv
│   │   └── lib
│   │      ├── libSceComposite.sprx
│   │      ├── libSceDipsw.sprx
│   │      ├── libSceDiscMapForVsh.sprx
│   │      └── libSceGnmDriver_sys.sprx
│   ├── sys
│   │   ├── fs_cleaner.elf
│   │   ├── GnmCompositor.elf
│   │   ├── orbis_audiod.elf
│   │   ├── SceSysAvControl.elf
│   │   ├── SceSysCore.elf
│   │   ├── SceVdecProxy.elf
│   │   └── SceVencProxy.elf
│   └── vsh
│      └── app
│          ├── NPXS21000                                                    Game Live Streaming
│          │   └── eboot.bin
│          ├── NPXS21002                                                    Party Daemon
│          │   └── eboot.bin
│          ├── NPXS21003                                                    AV Capture Manager
│          │   └── eboot.bin
│          ├── NPXS21004                                                    Video Core Server
│          │   └── eboot.bin
│          ├── NPXS21006                                                    Remote Play Daemon
│          │   └── eboot.bin
│          └── NPXS21010                                                    PS Cloud Daemon
│              └── eboot.bin
├── system_data
│   └── priv
│      └── home
│          └── new_user_group.dat
├── system_ex
│   └── app
│      └── NPXS20001                                                        Shell UI
│          └── eboot.bin
├── update                                                                    unknown use, probably for storing the downloaded update
└── user
    ├── data
    └── home
        └── 10000000
            ├── trophy
            │   └── data
            │      └── sce_trop
            │          └── trophy.img
            └── webbrowser
                ├── frequency_thumb
                ├── webbrowser_bookmark.db
                ├── webbrowser_frequency.db
                ├── webbrowser_history.db
                └── webbrowser_preset.db
 
=== Sectors (DUH-T1000.img) ===
 
Here i leave some non-empty encrypted sector mapping (1 sector=0x200 bytes):
 
* 0...6
* 8,9
* 34...63
* 2048...2191
* 2240...2495
* 10624...10631
* 10688...10695
* 526592...526847
* 544920...544983
* 1050944...105199
* 1089832...1089895
* etc
 
Information about the next sectors may be present on the first 9 sectors of the hard drive. it is unknown however if that is the case.
 
=== Devices ===
 
* /dev/ajm
* /dev/bpf
* /dev/bpf0
* /dev/camera
* /dev/console         
* /dev/ctty
* /dev/da0x6x1.crypt   
* /dev/da0x6x2.crypt
* /dev/dbggc
* /dev/dce
* /dev/deci_stderr     
* /dev/deci_stdin   
* /dev/deci_stdout
* /dev/deci_tty2 
* /dev/deci_tty3
* /dev/deci_tty4
* /dev/deci_tty5
* /dev/deci_tty6
* /dev/deci_tty7
* /dev/deci_ttya0
* /dev/deci_ttyb0
* /dev/deci_ttyc0
* /dev/dipsw         
* /dev/dmem0         
* /dev/dmem1 
* /dev/fd
* /dev/gc
* /dev/hid
* /dev/icc_configuration
* /dev/icc_device_power
* /dev/icc_indicator   
* /dev/icc_nvs         
* /dev/icc_power       
* /dev/notification0   
* /dev/notification1
* /dev/null
* /dev/random
* /dev/rng
* /dev/sce_zlib
* /dev/srtc 
* /dev/ugen0.4 
* /dev/urandom
* /dev/usb
* /dev/usbctl
* /dev/uvd
* /dev/vce
* /dev/zero
 
source:
https://web.archive.org/web/20161013104012/http://pastie.org/pastes/9706000
 
== Manufacturing Mode Files ==
 
* Path found in SceSyscore Mini.
 
<pre>
/usb/orbis_diag.self
</pre>


== BD content ==
== BD content ==
 
  ├ ─ PS4  
[PS4VOLUME]
  │ └ ─ UPDATE  
  ├─ PS4  
  │ [[PS4UPDATE.PUP]]
  │   └─ UPDATE
  │       └─ [[PS4UPDATE.PUP]]
  │           
  │           
  ├─ app
  ├ ─ App
  │   └─ [[Productcode]]
  │ └ ─ CUSA00190
  │           └─ [[app.pkg]]  
  │ [[app.pkg]]  
  │           
  │           
  ├─ bd  
  ├ ─ bd  
  │   └─ [[param.sfo]]  
  │ [[PARAM.SFO]]  
  │       
  │       
  └─ license  
  └ ─ license  
    └─ [[rif]]
        rif
 
== USB Mass Storage ==
 
support USB Mass Storage formatted as either FAT32 (4GiB filesize limit) or exFAT.
 
A maximum of 8 devices can be mounted simultaneously (/usb0 - /usb7)
 
=== File/Folder reservation for External MASS Storage Devices ===
 
\*.pkg                            (Installable packages)                  [[SKU Models Nonretail|devkit/testkit]] only
\ps4_activation.afv                ([[Activation AFV]] file)                            "
\PS4DISC.ISO                      (BD emulation file)                              "
├───ORBIS                                                                          "
│    └───UPDATE                  (ORBISUPDATE.PUP [[System Firmware]] file)          "
├───PS4
│    ├───SAVEDATA                (Save Games)
│    │      └───0000000000000000  (default folder)                                "
│    └───UPDATE                  (PS4UPDATE.PUP [[System Firmware]] file)
├───PS4SHARE                      (Share recorded Exports)                        "
├───SHARE                          (Share recorded Exports)
└───[MUSIC/PICTURE/VIDEO] *?
 
      *? PS3 folders like MUSIC, PICTURE, VIDEO
This is how the PS4's external HDD structure looks like
 
├───*:\Root On Mass Storage
├───PS4
│    ├───SAVEDATA                (Save Games)
│    │      └───0000000000000000  (default folder)
│    │              └───CUSA00001  (Save Game Folder)
│    │                     └───savedata
│    │                     └───savedata.bin
│    └───UPDATE  (PS4UPDATE.PUP [[System Firmware]] file)
│    │                  
│    └───EXPORT
│            └───BACKUP
│                  └───201504261757_00    (The folder with the backup chunks of the HDD, contains the date, the time and the backup number)
│                                ├───archive.dat  (4,194,240 KB)
│                                ├───archive0001.dat (4,194,240 KB)
│                                ├───archive0002.dat (4,194,240 KB)
│                                ├───archive0003.dat (4,194,240 KB)
│                                ├───archive0004.dat (4,194,240 KB)
│                                └───archive0005.dat (4,194,240 KB)
├───SHARE (Share recorded Exports)
│    ├───Screenshots
│    │    └───(Name Of Game)
│    │           └───nameofgame.jpg
│    │     └───Other
│    └────Video Clips
│        └───(Name Of Game)
│            └───nameofgame.mp4 
├───SHAREFACTORY                    (PS4 Movie Making Application)
│        └───MUSIC
├───(NAMEOFGAME)                  (Similar to SHAREFACTORY's folder)       
│        ├───image.png
│        ├───image.jpg
│        └───music.mp3 *?
├───Music
│        ├───music.mp3          ( Audio media can be played from a USB stick device, if these files are placed into a folder called "music"
│        ├───music.mp4            - Supported codec : AAC (2channel) and MP3 (2 channel)
│        ├───music.m4a            - Sampling Frequency: 22.05kHz、24kHz; 32kHz、44.1kHz、48kHz; 96kHz
│        └───music.3gp            - Playlist: .m3u, m3u8                                                                                    )
└───[MUSIC/PICTURE/VIDEO] *?


== Package Files ==
== Package Files ==
 
[http://gs2.ww.prod.dl.playstation.net/gs2/ppkgo/prod/CUSA00042_00/5/f_9f37c55c84889f6557ffc7d340dda32c0f4073c3741d0824911a8baaa2214f3c/f/UP2102-CUSA00042_00-BLACKLIGHT2ORBIS-A0101-V0102.pkg UP2102-CUSA00042_00-BLACKLIGHT2ORBIS-A0101-V0102.pkg]
See also [[Package Files]].




{{Reverse Engineering}}
{{Reverse Engineering}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>
Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)