mirror of
https://github.com/MrLowPr/overdrive.git
synced 2026-10-17 18:02:48 +02:00
fix: fake pkgs only on firmware 11.60 or older
This commit is contained in:
1 parent
db6f723fc1
commit
87cc62099c
18 files changed
+48
-1
No files matched your search
@@ -19,6 +19,7 @@ import { t } from '../i18n/core.js';
|
||||
[/not enough memory to extract/i, "noMemory", "reopenApp"],
|
||||
[/archive password/i, "archivePassword", "otherSource"],
|
||||
[/not a game file/i, "notGameFile", "otherSource"],
|
||||
[/fake PKGs install only/i, "pkgFirmware", "otherSource"],
|
||||
// A set's last volume ends where the archive goes on, or its first is not where it starts: the source lists
|
||||
// too few volumes, and downloading them again fails the same way. A lone archive the worker cannot open
|
||||
// fails with the same words; that one is downloaded again.
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "توقف عند إغلاق التطبيق",
|
||||
"errors.linkGone": "رابط التحميل لم يعد يعمل",
|
||||
"errors.notGameFile": "أرسل المضيف صفحة ويب بدلاً من اللعبة",
|
||||
"errors.pkgFirmware": "لا تُثبَّت حزم PKG المزيفة إلا على البرنامج الثابت 11.60 أو أقدم",
|
||||
"errors.missingParts": "هذا المصدر تنقصه أجزاء",
|
||||
"errors.needsBrowser": "هذا المصدر يحتاج متصفح ويب",
|
||||
"errors.noConnection": "لا يوجد اتصال بالخادم",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "অ্যাপ বন্ধ হওয়ার সময় থেমেছিল",
|
||||
"errors.linkGone": "ডাউনলোড লিঙ্ক আর কাজ করে না",
|
||||
"errors.notGameFile": "হোস্ট গেমের বদলে একটি ওয়েব পেজ পাঠিয়েছে",
|
||||
"errors.pkgFirmware": "ফেক PKG শুধু ফার্মওয়্যার 11.60 বা তার আগের সংস্করণে ইনস্টল হয়",
|
||||
"errors.missingParts": "এই উৎসে কিছু অংশ নেই",
|
||||
"errors.needsBrowser": "এই উৎসের একটি ওয়েব ব্রাউজার প্রয়োজন",
|
||||
"errors.noConnection": "সার্ভারের সাথে কোনো সংযোগ নেই",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Gestoppt, als die App geschlossen wurde",
|
||||
"errors.linkGone": "Download-Link funktioniert nicht mehr",
|
||||
"errors.notGameFile": "Der Host hat eine Webseite statt des Spiels gesendet",
|
||||
"errors.pkgFirmware": "Fake-PKGs lassen sich nur bis Firmware 11.60 installieren",
|
||||
"errors.missingParts": "Dieser Quelle fehlen Teile",
|
||||
"errors.needsBrowser": "Diese Quelle benötigt einen Webbrowser",
|
||||
"errors.noConnection": "Keine Verbindung zum Server",
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
"errors.interrupted": "Stopped when the app closed",
|
||||
"errors.linkGone": "Download link no longer works",
|
||||
"errors.notGameFile": "The host sent a web page instead of the game",
|
||||
"errors.pkgFirmware": "Fake PKGs only install on firmware 11.60 or older",
|
||||
"errors.missingParts": "This source is missing parts",
|
||||
"errors.needsBrowser": "This source needs a web browser",
|
||||
"errors.noConnection": "No connection to the server",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Detenido cuando la app se cerró",
|
||||
"errors.linkGone": "El enlace de descarga ya no funciona",
|
||||
"errors.notGameFile": "El servidor envió una página web en lugar del juego",
|
||||
"errors.pkgFirmware": "Los PKG falsos solo se instalan con firmware 11.60 o anterior",
|
||||
"errors.missingParts": "A esta fuente le faltan partes",
|
||||
"errors.needsBrowser": "Esta fuente necesita un navegador web",
|
||||
"errors.noConnection": "Sin conexión al servidor",
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
"errors.interrupted": "با بسته شدن برنامه متوقف شد",
|
||||
"errors.linkGone": "لینک دانلود دیگر کار نمیکند",
|
||||
"errors.notGameFile": "میزبان به جای بازی یک صفحهٔ وب فرستاد",
|
||||
"errors.pkgFirmware": "PKGهای جعلی فقط روی فریمور 11.60 یا قدیمیتر نصب میشوند",
|
||||
"errors.missingParts": "این منبع بخشهایی کم دارد",
|
||||
"errors.needsBrowser": "این منبع به مرورگر وب نیاز دارد",
|
||||
"errors.noConnection": "اتصال به سرور برقرار نیست",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Arrêté quand l'app s'est fermée",
|
||||
"errors.linkGone": "Le lien de téléchargement ne fonctionne plus",
|
||||
"errors.notGameFile": "L'hébergeur a envoyé une page web au lieu du jeu",
|
||||
"errors.pkgFirmware": "Les faux PKG ne s'installent qu'en firmware 11.60 ou antérieur",
|
||||
"errors.missingParts": "Il manque des parties à cette source",
|
||||
"errors.needsBrowser": "Cette source nécessite un navigateur web",
|
||||
"errors.noConnection": "Pas de connexion au serveur",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "जब ऐप बंद हुआ तो रुका",
|
||||
"errors.linkGone": "डाउनलोड लिंक अब काम नहीं करता",
|
||||
"errors.notGameFile": "होस्ट ने गेम की जगह एक वेब पेज भेजा",
|
||||
"errors.pkgFirmware": "फ़ेक PKG केवल फ़र्मवेयर 11.60 या पुराने पर इंस्टॉल होते हैं",
|
||||
"errors.missingParts": "इस स्रोत में भाग कम हैं",
|
||||
"errors.needsBrowser": "यह स्रोत एक वेब ब्राउज़र की आवश्यकता है",
|
||||
"errors.noConnection": "सर्वर से कोई कनेक्शन नहीं",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Dihentikan saat aplikasi ditutup",
|
||||
"errors.linkGone": "Tautan unduhan tidak lagi berfungsi",
|
||||
"errors.notGameFile": "Host mengirim halaman web, bukan gamenya",
|
||||
"errors.pkgFirmware": "PKG palsu hanya bisa dipasang di firmware 11.60 atau lebih lama",
|
||||
"errors.missingParts": "Sumber ini kekurangan bagian",
|
||||
"errors.needsBrowser": "Sumber ini memerlukan browser web",
|
||||
"errors.noConnection": "Tidak ada koneksi ke server",
|
||||
|
||||
@@ -179,6 +179,7 @@
|
||||
"errors.interrupted": "Interrotto alla chiusura dell'app",
|
||||
"errors.linkGone": "Il link di download non funziona più",
|
||||
"errors.notGameFile": "L'host ha inviato una pagina web invece del gioco",
|
||||
"errors.pkgFirmware": "I fake PKG si installano solo con firmware 11.60 o precedente",
|
||||
"errors.missingParts": "In questa fonte mancano delle parti",
|
||||
"errors.needsBrowser": "Questa fonte richiede un browser web",
|
||||
"errors.noConnection": "Nessuna connessione al server",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "アプリの終了時に停止しました",
|
||||
"errors.linkGone": "ダウンロードリンクが無効です",
|
||||
"errors.notGameFile": "ホストがゲームではなくウェブページを送信しました",
|
||||
"errors.pkgFirmware": "偽PKGはファームウェア11.60以前でのみインストールできます",
|
||||
"errors.missingParts": "この入手元にはパートが足りません",
|
||||
"errors.needsBrowser": "この入手元にはWebブラウザが必要です",
|
||||
"errors.noConnection": "サーバーに接続できません",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Interrompido quando o app fechou",
|
||||
"errors.linkGone": "Link de download não funciona mais",
|
||||
"errors.notGameFile": "O servidor enviou uma página da web em vez do jogo",
|
||||
"errors.pkgFirmware": "PKGs falsos só instalam no firmware 11.60 ou anterior",
|
||||
"errors.missingParts": "Faltam partes nesta fonte",
|
||||
"errors.needsBrowser": "Esta fonte precisa de navegador web",
|
||||
"errors.noConnection": "Sem conexão com o servidor",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "Остановлено при закрытии приложения",
|
||||
"errors.linkGone": "Ссылка на загрузку больше не работает",
|
||||
"errors.notGameFile": "Хостинг прислал веб-страницу вместо игры",
|
||||
"errors.pkgFirmware": "Фейковые PKG устанавливаются только на прошивке 11.60 и ниже",
|
||||
"errors.missingParts": "В этом источнике не хватает частей",
|
||||
"errors.needsBrowser": "Этот источник требует веб-браузер",
|
||||
"errors.noConnection": "Нет соединения с сервером",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "ایپ بند ہونے پر روک دی گئی",
|
||||
"errors.linkGone": "ڈاؤن لوڈ لنک اب کام نہیں کرتی",
|
||||
"errors.notGameFile": "ہوسٹ نے گیم کے بجائے ویب پیج بھیجا",
|
||||
"errors.pkgFirmware": "جعلی PKG صرف فرم ویئر 11.60 یا اس سے پرانے پر انسٹال ہوتے ہیں",
|
||||
"errors.missingParts": "اس ذریعے میں حصے کم ہیں",
|
||||
"errors.needsBrowser": "اس ذریعے کو ویب براؤزر کی ضرورت ہے",
|
||||
"errors.noConnection": "سرور سے کوئی رابطہ نہیں",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"errors.interrupted": "应用关闭时已停止",
|
||||
"errors.linkGone": "下载链接已失效",
|
||||
"errors.notGameFile": "托管网站发送的是网页而不是游戏",
|
||||
"errors.pkgFirmware": "伪 PKG 仅能在 11.60 或更早的固件上安装",
|
||||
"errors.missingParts": "此来源缺少部分文件",
|
||||
"errors.needsBrowser": "此来源需要网页浏览器",
|
||||
"errors.noConnection": "无法连接到服务器",
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { DeviceInfo } from '@ps5-react/core';
|
||||
|
||||
// Fake PKGs install only up to this firmware; above it the system refuses them, after the whole
|
||||
// download (issues #6 and #17). Version strings read like "13.200.001": major and two minor digits.
|
||||
var LAST_PKG_FIRMWARE = [11, 60];
|
||||
var PKG_FIRMWARE_ERROR = "Fake PKGs install only on firmware 11.60 or older. Choose another source.";
|
||||
var PKG_FORMATS = /* @__PURE__ */ new Set(["pkg", "fpkg"]);
|
||||
function firmwareVersion() {
|
||||
let text;
|
||||
try {
|
||||
text = DeviceInfo.get().firmware;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
const match = /(\d+)\.(\d{2})/.exec(text || "");
|
||||
return match ? [Number(match[1]), Number(match[2])] : null;
|
||||
}
|
||||
// Unknown firmware (the desktop preview, an old runtime) keeps PKGs offered, as before.
|
||||
function fakePackagesInstall() {
|
||||
const version = firmwareVersion();
|
||||
if (!version) return true;
|
||||
const [major, minor] = version, [lastMajor, lastMinor] = LAST_PKG_FIRMWARE;
|
||||
return major < lastMajor || major === lastMajor && minor <= lastMinor;
|
||||
}
|
||||
function withoutUninstallablePackages(releases) {
|
||||
if (fakePackagesInstall()) return releases;
|
||||
return releases.map((release) => PKG_FORMATS.has(release.format) && !release.unavailableReason ? { ...release, unavailableReason: PKG_FIRMWARE_ERROR } : release);
|
||||
}
|
||||
|
||||
export { PKG_FIRMWARE_ERROR, fakePackagesInstall, withoutUninstallablePackages };
|
||||
@@ -1,6 +1,7 @@
|
||||
// ../pub-game-store/native/state/release-cache.js
|
||||
// reconstructed from the esbuild bundle in eboot.bin
|
||||
|
||||
import { withoutUninstallablePackages } from './firmware.js';
|
||||
import { releaseSets } from './release-sets.js';
|
||||
|
||||
var KEPT2 = 6;
|
||||
@@ -12,7 +13,7 @@ import { releaseSets } from './release-sets.js';
|
||||
if (!releases) {
|
||||
const parsed = JSON.parse(read(file));
|
||||
if (!Array.isArray(parsed)) throw new Error("Invalid release data; rebuild the catalog.");
|
||||
releases = releaseSets(parsed);
|
||||
releases = withoutUninstallablePackages(releaseSets(parsed));
|
||||
if (games2.size === KEPT2) games2.delete(games2.keys().next().value);
|
||||
}
|
||||
games2.delete(file);
|
||||
|
||||
Reference in new issue
Block a user