cy33hc / ps4-ezremote-client

GNU General Public License v2.0
96 stars 5 forks source link

ezRemote Client

ezRemote Client is an application that allows you to connect the PS4 to remote FTP/SFTP, SMB(Windows Share), NFS, WebDAV, HTTP servers and Google Drive to transfer files. The interface is inspired by Filezilla client which provides a commander like GUI.

New: As of version 1.19

New: As of version 1.0.8, ezRemote Client has a Web Interface that can be access from any modern browser to manage the PS4 files.

New: As of version 1.0.9. Remote Package Installation does not require you to host an external Http Server. The embedded Web Server built into ezRemote Client acts as a Proxy Server between the PS4 and remote server (FTP, SFTP, SMB, NFS, WebDav, HttpServer(IIS/Nginx/Apache/Serve) and GoogleDrive). There's no data written to the PS4 hard drive in the process, rather everything is streamed via embedded Web Server directly to the PS4 installer.

Preview

Preview

Usage

To distinguish between FTP, SMB, NFS, WebDAV or HTTP, the URL must be prefix with ftp://, sftp://, smb://, nfs://, webdav://, webdavs://, http:// and https://

Tested with following WebDAV server:

Remote Package Installer Feature

Remote Package Installation with all Remote Server, even if they are password protected.

Features Native Application

Features in Web Interface

How to access the Web Interface

You need to launch the "ezRemote Client" app on the PS4. Then on any device(laptop, tablet, phone etc..) with web browser goto to http://:8080 . That's all.

The port# can be changed from the "Global Settings" dialog in the PS4 app. Any changes to the web server settings needs a restart of the application to take effect.

Installation

Copy the ezremote_client.pkg in to a FAT32 format usb drive then install from package installer

Controls

Triangle - Menu (after a file(s)/folder(s) is selected)
Cross - Select Button/TextBox
Circle - Un-Select the file list to navigate to other widgets or Close Dialog window in most cases
Square - Mark file(s)/folder(s) for Delete/Rename/Upload/Download
R1 - Navigate to the Remote list of files
L1 - Navigate to the Local list of files
L2 - To go up a directory from current directory
TouchPad Button - Exit Application (versions prior to 1.06)
Options Button - Exit Application (versions 1.06 and above)

Multi Language Support

The appplication support following languages.

Note: Due to new strings added, there are about 31 missing translations for all the languagess. Please help by downloading this Template, make your changes and submit an issue with the file attached for the language.

The following languages are auto detected.

Dutch
English
French
German
Italiano
Japanese
Korean
Polish
Portuguese_BR
Russian
Spanish
Simplified Chinese
Traditional Chinese

The following aren't standard languages supported by the PS4, therefore requires a config file update.

Arabic
Catalan
Croatian
Euskera
Galego
Greek
Hungarian
Indonesian
Romanian
Ryukyuan
Thai
Turkish
Ukrainian

User must modify the file /data/ezremote-client/config.ini located in the ps4 hard drive and update the language setting to with the exact values from the list above.

HELP: There are no language translations for the following languages, therefore not support yet. Please help expand the list by submitting translation for the following languages. If you would like to help, please download this Template, make your changes and submit an issue with the file attached.

Finnish
Swedish
Danish
Norwegian
Czech
Vietnamese

or any other language that you have a traslation for.

Building

Before build the app, you need to build the dependencies first. Clone the following Git repos and build them in order

Download the PS4SDK Toolchain

1. Download the pacbrew-pacman from following location and install.
   https://github.com/PacBrew/pacbrew-pacman/releases
2. Run following cmds
   pacbrew-pacman -Sy
   pacbrew-pacman -S ps4-openorbis ps4-openorbis-portlibs
   chmod guo+x /opt/pacbrew/ps4/openorbis/ps4vars.sh

Build and install openssl - https://github.com/cy33hc/ps4-openssl/blob/OpenSSL_1_1_1-ps4/README_PS4.md

Build and install libcurl

1. download libcurl https://curl.haxx.se/download/curl-7.80.0.tar.xz and extract to a folder
2. source /opt/pacbrew/ps4/openorbis/ps4vars.sh
3. autoreconf -fi
4. CFLAGS="${CFLAGS} -DSOL_IP=0" LIBS="${LIBS} -lSceNet" \
  ./configure --prefix="${OPENORBIS}/usr" --host=x86_64 \
    --disable-shared --enable-static \
    --with-openssl --disable-manual
5. sed -i 's|#include <osreldate.h>|//#include <osreldate.h>|g' include/curl/curl.h
6. make -C lib install

Build and install libsmb2 - https://github.com/cy33hc/libsmb2/blob/ps4/README_PS4.md

Build and install lexbor - https://github.com/lexbor/lexbor.git

Build and install libssh2 - https://www.libssh2.org/

Build and install libnfs - https://github.com/cy33hc/libnfs/tree/ps4

Build libjbc - https://github.com/cy33hc/ps4-libjbc/blob/master/README_PS4.md

Build libunrar - https://github.com/cy33hc/libunrar-ps3

Build libun7zip - https://github.com/cy33hc/libun7zip

Build libjson-c - https://github.com/json-c/json-c

Web Interface library - https://github.com/cy33hc/angular-filemanager

I have included the source code from the following 2 projects embedded into this repo.
https://github.com/yhirose/cpp-httplib
https://github.com/CloudPolis/webdav-client-cpp

Finally build the app

   source /opt/pacbrew/ps4/openorbis/ps4vars.sh
   mkdir build; cd build
   openorbis-cmake ..
   make