Compare commits
No commits in common. "master" and "0.3" have entirely different histories.
6 changed files with 120 additions and 30 deletions
10
README.md
10
README.md
|
@ -1,15 +1,14 @@
|
|||
# ZUGABE
|
||||
|
||||
**This is obsolete. Please use [finalhe by soarqin](https://github.com/soarqin/finalhe).**
|
||||
|
||||
This tool automates much of the installation of h-encore.
|
||||
|
||||
[](http://www.repostatus.org/#active)
|
||||
|
||||
## About
|
||||
This tool automates the install process of thefl0w's h-encore exploit for PS Vita, at least everything that can be done on the PC.
|
||||
Since I can't code in C or C++, I was unable to use OpenCMA as a backend, so I used QCMA. It's automatically downloaded and does not require to be installed.
|
||||
Configuration of QCMA is done via registry edits. The application also detects existing QCMA installations and restores the original settings after the exploit was installed.
|
||||
|
||||
**Attention: This tool only supports connection of the PSVita using Wi-Fi, therefore it's currently only compatible with PSVita/PSTV on Firmware 3.68!**
|
||||
**Attention: This tool only supports connection of the PSVita using Wi-Fi!**
|
||||
|
||||
## Usage
|
||||
Download from the releases section, extract it and run the executable.
|
||||
|
@ -18,7 +17,8 @@ Download from the releases section, extract it and run the executable.
|
|||
Build using Visual Studio 2017, this was tested. Other C# IDEs might work as well.
|
||||
|
||||
## Todo
|
||||
- Mac/Linux compatibility
|
||||
- Translations
|
||||
- Mac/Linux Compatibilty
|
||||
- Fix bugs (you tell me!)
|
||||
|
||||
## Thanks
|
||||
|
|
Binary file not shown.
|
@ -16,8 +16,17 @@ namespace h_encore_auto
|
|||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (Directory.Exists(Ref.tempDir))
|
||||
Util.DeleteDirectory(Ref.tempDir);
|
||||
if (File.Exists(Ref.tempDir + "keepfile"))
|
||||
{
|
||||
Ref.areFilesKept = true;
|
||||
Util.keepFilesCleanup();
|
||||
}
|
||||
else
|
||||
{
|
||||
Ref.areFilesKept = false;
|
||||
if (Directory.Exists(Ref.tempDir))
|
||||
Util.DeleteDirectory(Ref.tempDir);
|
||||
}
|
||||
|
||||
InitTimer();
|
||||
}
|
||||
|
@ -55,30 +64,33 @@ namespace h_encore_auto
|
|||
startInfoOut.FileName = "cmd.exe";
|
||||
startInfoOut.WorkingDirectory = Ref.tempDir;
|
||||
|
||||
// 7ZIP Download and extraction
|
||||
Util.dlFile(Ref.url7zr, "7zr.exe");
|
||||
Util.dlFile(Ref.url7za, "7z-extra.7z");
|
||||
if (Ref.areFilesKept == false)
|
||||
{
|
||||
// 7ZIP Download and extraction
|
||||
Util.dlFile(Ref.url7zr, "7zr.exe");
|
||||
Util.dlFile(Ref.url7za, "7z-extra.7z");
|
||||
|
||||
startInfo.Arguments = "/C 7zr.exe x 7z-extra.7z";
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
process.WaitForExit();
|
||||
startInfo.Arguments = "/C 7zr.exe x 7z-extra.7z";
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
process.WaitForExit();
|
||||
|
||||
//Rest of the tool downloads
|
||||
Util.dlFile(Ref.urlPsvimg, "psvimgtools.zip");
|
||||
Util.dlFile(Ref.urlPkg, "pkg2zip.zip");
|
||||
Util.dlFile(Ref.urlEnc, "h-encore.zip");
|
||||
Util.dlFile(Ref.urlEntry, "entryPoint.pkg");
|
||||
Util.dlFile(Ref.urlQcma, "qcma.zip");
|
||||
Util.dlFile(Ref.urlReg, "qcma.reg");
|
||||
//Rest of the tool downloads
|
||||
Util.dlFile(Ref.urlPsvimg, "psvimgtools.zip");
|
||||
Util.dlFile(Ref.urlPkg, "pkg2zip.zip");
|
||||
Util.dlFile(Ref.urlEnc, "h-encore.zip");
|
||||
Util.dlFile(Ref.urlEntry, "entryPoint.pkg");
|
||||
Util.dlFile(Ref.urlQcma, "qcma.zip");
|
||||
Util.dlFile(Ref.urlReg, "qcma.reg");
|
||||
|
||||
string text = File.ReadAllText(Ref.pathImportReg);
|
||||
text = text.Replace("REPLACE", Ref.pathQcmaRes);
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
text = text.Replace("\\", "/");
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
text = text.Replace("HKEY_CURRENT_USER/Software/codestation/qcma", @"HKEY_CURRENT_USER\Software\codestation\qcma");
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
string text = File.ReadAllText(Ref.pathImportReg);
|
||||
text = text.Replace("REPLACE", Ref.pathQcmaRes);
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
text = text.Replace("\\", "/");
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
text = text.Replace("HKEY_CURRENT_USER/Software/codestation/qcma", @"HKEY_CURRENT_USER\Software\codestation\qcma");
|
||||
File.WriteAllText(Ref.pathImportReg, text);
|
||||
}
|
||||
|
||||
startInfo.Arguments = "/C " + Ref.path7z + " x " + Ref.pathPsvimg;
|
||||
process.StartInfo = startInfo;
|
||||
|
@ -110,6 +122,20 @@ namespace h_encore_auto
|
|||
Util.CopyDir(Ref.tempDir + "app\\PCSG90096\\", Ref.tempDir + "h-encore\\app\\ux0_temp_game_PCSG90096_app_PCSG90096\\",true);
|
||||
File.Copy(Ref.tempDir + "app\\PCSG90096\\sce_sys\\package\\temp.bin", Ref.tempDir + @"h-encore\license\ux0_temp_game_PCSG90096_license_app_PCSG90096\6488b73b912a753a492e2714e9b38bc7.rif");
|
||||
|
||||
try
|
||||
{
|
||||
string path = Ref.tempDir + "app\\PCSG90096\\resource\\";
|
||||
foreach (string k in Ref.trims)
|
||||
{
|
||||
Util.DeleteDirectory(path + k);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Exception: " + ex.Message + "\nYou should tell the developer in a github issue. Include a screenshot if possible!");
|
||||
return;
|
||||
}
|
||||
|
||||
startInfoOut.RedirectStandardOutput = true;
|
||||
startInfoOut.UseShellExecute = false;
|
||||
startInfoOut.Arguments = @"/C reg query HKEY_CURRENT_USER\Software\codestation\qcma & echo 0";
|
||||
|
|
|
@ -94,7 +94,12 @@ namespace h_encore_auto
|
|||
|
||||
if (Directory.Exists(Ref.tempDir))
|
||||
{
|
||||
DeleteDirectory(Ref.tempDir);
|
||||
if (MessageBox.Show("Do you want to keep the downloaded files for future use?\nPressing no will wipe any leftover files of this application off your computer.", "Keep Files?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
||||
{
|
||||
keepFilesCleanup();
|
||||
}
|
||||
else
|
||||
DeleteDirectory(Ref.tempDir);
|
||||
}
|
||||
|
||||
Environment.Exit(0);
|
||||
|
@ -150,5 +155,38 @@ namespace h_encore_auto
|
|||
}
|
||||
}
|
||||
}
|
||||
public static void keepFilesCleanup()
|
||||
{
|
||||
if (!File.Exists(Ref.tempDir + "keepfile"))
|
||||
{
|
||||
File.Create(Ref.tempDir + "keepfile");
|
||||
}
|
||||
|
||||
string backupTemp = Ref.tempDir + "keepfiles\\";
|
||||
Directory.CreateDirectory(backupTemp);
|
||||
|
||||
foreach (string download in Ref.downloads)
|
||||
{
|
||||
File.Copy(Ref.tempDir + download, backupTemp + download);
|
||||
}
|
||||
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\app");
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\Far");
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\h-encore");
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\Qcma");
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\QcmaRes");
|
||||
Util.DeleteDirectory(Ref.tempDir + "\\x64");
|
||||
|
||||
foreach (string file in Directory.GetFiles(Ref.tempDir))
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
|
||||
foreach (string download in Ref.downloads)
|
||||
{
|
||||
File.Copy(backupTemp + download, Ref.tempDir + download);
|
||||
}
|
||||
Util.DeleteDirectory(backupTemp);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -50,7 +50,7 @@ namespace h_encore_auto
|
|||
currImg--;
|
||||
imgFrame.Source = new BitmapImage(new Uri("/img/" + currImg + ".png", UriKind.Relative));
|
||||
buttonFwd.IsEnabled = true;
|
||||
textField.Text = currText[currImg - 1];
|
||||
textField.Text = currText[currImg];
|
||||
|
||||
if (currImg == 1 || currImg == 15)
|
||||
{
|
||||
|
|
|
@ -20,6 +20,31 @@ namespace h_encore_auto
|
|||
|
||||
public static readonly string tempDir = Path.GetTempPath() + @"encore_temp\";
|
||||
|
||||
public static readonly string[] trims = new string[] {
|
||||
"movie\\",
|
||||
"image\\bg\\",
|
||||
"image\\ev\\",
|
||||
"image\\icon\\",
|
||||
"image\\stitle\\",
|
||||
"image\\tachie\\",
|
||||
"sound\\bgm\\",
|
||||
"sound\\se\\",
|
||||
"sound\\sec\\",
|
||||
"sound\\voice\\",
|
||||
"text\\01\\"
|
||||
};
|
||||
|
||||
public static readonly string[] downloads = new string[] {
|
||||
"7zr.exe",
|
||||
"7z-extra.7z",
|
||||
"entryPoint.pkg",
|
||||
"h-encore.zip",
|
||||
"pkg2zip.zip",
|
||||
"psvimgtools.zip",
|
||||
"qcma.reg",
|
||||
"qcma.zip"
|
||||
};
|
||||
|
||||
public static bool isSecondGuide = false;
|
||||
|
||||
public static bool isQcmaConfigFound = false;
|
||||
|
@ -38,6 +63,7 @@ namespace h_encore_auto
|
|||
public static readonly string pathBackupReg = tempDir + "backup.reg";
|
||||
public static readonly string pathImportReg = tempDir + "qcma.reg";
|
||||
public static readonly string pathQcmaRes = tempDir + "QcmaRes\\";
|
||||
public static bool areFilesKept = false;
|
||||
|
||||
public static bool isRegModified = false;
|
||||
}
|
||||
|
|
Reference in a new issue