1
0
mirror of https://gitlab.com/lolmam/Phigros-Android-History.git synced 2026-02-04 16:21:11 +00:00

Compare commits

...

3 Commits

Author SHA1 Message Date
a1d7e714de Added latest version 2025-12-28 21:59:22 +03:00
423b74c613 Fix popup 2025-12-08 17:22:04 +03:00
3144a68112 Added DISCLAIMER popup 2025-12-08 16:58:33 +03:00
8 changed files with 427 additions and 6 deletions

View File

@@ -18,6 +18,21 @@ This table and any use of it (including in the website versions) remains under t
<th width="70%">Changelog
</th></tr>
<tr>
<th>3.18.1 (138)
</th>
<td>2025-12-17
</td>
<td>
<ul><li>Added 2 new songs to <a href="https://phigros.fandom.com/wiki/Songs#Single_Collection" title="Songs">Single Collection</a>
<ul><li><a href="https://phigros.fandom.com/wiki/Locomotive" title="Locomotive">Locomotive</a></li>
<li><a href="https://phigros.fandom.com/wiki/%E6%9C%80%E9%AB%98%E5%82%91%E4%BD%9C" title="最高傑作">最高傑作</a></li></ul></li>
<li>Made modifications to the AT chart of <a href="https://phigros.fandom.com/wiki/Hydra" title="Hydra">Hydra</a> and IN chart of <a href="https://phigros.fandom.com/wiki/BANGING_STRIKE" title="BANGING STRIKE">BANGING STRIKE</a></li>
<li>Fixed video playback issues</li>
<li>Disabled VSync to resolve frame rate halves on some devices</li>
<li>Fixed oversized note display on some devices</li>
<li>Other bug fixes and improvements</li></ul>
</td></tr>
<tr>
<th>3.18.0 (137)
</th>
<td>2025-11-19

View File

@@ -21,8 +21,8 @@ For license and attribution info check [NOTICE.md](NOTICE.md)
## Archive Progress
**Total versions released:** 129
**Versions found:** 120
**Total versions released:** 130
**Versions found:** 121
**Versions missing:** 9
*(If you have any of them, feel free to contact me so I can add them to this archive.)*
@@ -40,7 +40,7 @@ For instructions on how to install check [How to Install](Install.md).
The full changelog for each version is available in the [Changelog](Changelog.md).
## Notes
1. **Version 3.18.0 (137)** is the latest version **"19/Nov/2025"**.
1. **Version 3.18.1 (138)** is the latest version **"17/Dec/2025"**.
2. The game updates around every **Wednesday at (09:00 AM UTC)**.
3. **"G"** is for Google Play versions, **"T"** is for TapTap versions, and **NA** for versions that **don't** work (APK is available but missing OBB or it doesn't install or launch).
4. Google Play versions **(G)** and TapTap versions **(T)** are **not compatible** with each other due to differences in their digital signatures.

View File

@@ -662,5 +662,10 @@ Full Changelog is [Here](Changelog.md)
<td>3.18.0</td>
<td>Google Play</td>
</tr>
<tr>
<td>138</td>
<td>3.18.1</td>
<td>Google Play</td>
</tr>
</tbody>
</table>

View File

@@ -40,7 +40,7 @@
<div id="missing-versions" class="home-dropdown-content">
<code>1.2.1, 1.2.2, 1.2.3, 1.2.5, 1.5.3, 1.5.5, 2.4.1, 2.4.2, 2.5.0</code>
</div>
<p>Latest version: <strong><a href="versions/versions_3.x#v3-18-0" class="active">3.18.0 (137)</a></strong> - 19/Nov/2025<br>Updates are usually released every Wednesday at 09:00 AM UTC.</p>
<p>Latest version: <strong><a href="versions/versions_3.x#v3-18-1" class="active">3.18.1 (138)</a></strong> - 17/Dec/2025<br>Updates are usually released every Wednesday at 09:00 AM UTC.</p>
</section>
<div class="cta-buttons">

View File

@@ -517,4 +517,96 @@ a.back-to-top:hover {
.highlight {
animation: pulse 1.5s ease-out;
}
}
.license-popup {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.75);
backdrop-filter: blur(10px);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
padding: 20px;
}
.hidden {
display: none;
}
.license-popup-content {
background: #1a1a1a;
border: 1px solid #333;
border-radius: 12px;
padding: 25px 30px;
width: 100%;
max-width: 520px;
max-height: 85vh;
overflow: hidden;
color: #ddd;
box-shadow: 0 0 20px rgba(0,0,0,0.5);
animation: popupFade 0.22s ease-out;
}
.highlight {
animation: pulse 1.5s ease-out;
}
.license-popup-content h2 {
margin-bottom: 15px;
font-size: 1.7rem;
color: #fff;
text-align: center;
}
.license-text {
background: #111;
border: 1px solid #333;
border-radius: 8px;
padding: 12px 15px;
max-height: 300px;
overflow-y: auto;
margin-bottom: 22px;
font-size: 0.92rem;
line-height: 1.45;
color: #ccc;
-ms-overflow-style: none;
scrollbar-width: none;
}
.license-text::-webkit-scrollbar {
display: none;
}
.license-text p {
margin-bottom: 12px;
font-size: 14px;
}
.license-buttons {
display: flex;
justify-content: center;
gap: 14px;
}
@keyframes popupFade {
from { opacity: 0; transform: scale(0.94); }
to { opacity: 1; transform: scale(1); }
}
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(0, 150, 255, 0.7); }
70% { box-shadow: 0 0 0 15px rgba(0, 150, 255, 0); }
100% { box-shadow: 0 0 0 0 rgba(0, 150, 255, 0); }
}
.body-locked {
overflow: hidden !important;
pointer-events: none;
}
.body-locked #license-popup {
pointer-events: auto;
}

View File

@@ -2313,9 +2313,94 @@
<img src="https://mirrors.creativecommons.org/presskit/icons/nc.svg" alt="NC" style="max-width: 1em; max-height:1em; margin-left: .2em;">
<img src="https://mirrors.creativecommons.org/presskit/icons/sa.svg" alt="SA" style="max-width: 1em; max-height:1em; margin-left: .2em;">
</footer>
<div id="license-popup" class="license-popup hidden">
<div class="license-popup-content highlight">
<h2>DISCLAIMER</h2>
<div class="license-text">
<p><strong>"Phigros"</strong> is a game developed and owned by Pigeon Games. This archive is a fan made project and is not affiliated with, endorsed by, or officially connected to Pigeon Games or the Phigros development team.</p>
<p>By choosing to download, install, or use any of the provided files, you accept full responsibility for any outcomes. Although care has been taken to ensure the files are clean and safe, we are not responsible for any problems, errors, or damage that might occur as a result of using them.</p>
<p>ALL APK files and other materials available here are provided for personal use only, such as backup, educational reference, or preservation. These files are offered as is, with no guarantees about how well they work or whether they will function properly on every device or system.</p>
<p>For license and attribution info check <a href="../../notice/">NOTICE</a>.</p>
</div>
<div class="license-buttons">
<button id="agree" class="btn">Agree</button>
<button id="close-popup" class="btn alt">Disagree</button>
</div>
</div>
</div>
</body>
</html>
<script>
document.addEventListener("DOMContentLoaded", () => {
const popup = document.getElementById("license-popup");
const agree = document.getElementById("agree");
const closeBtn = document.getElementById("close-popup");
function setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/; SameSite=Lax`;
}
function getCookie(name) {
return document.cookie
.split("; ")
.find(c => c.startsWith(name + "="))
?.split("=")[1];
}
let pendingURL = null;
const buttons = document.querySelectorAll(".btn, .btn.alt");
buttons.forEach(el => {
el.addEventListener("click", e => {
if (el.classList.contains("btn-unavailable")) return;
if (getCookie("licenseAccepted")) {
return;
}
e.preventDefault();
pendingURL = el.href;
popup.classList.remove("hidden");
document.body.classList.add("body-locked");
});
});
agree.addEventListener("click", () => {
setCookie("licenseAccepted", "true", 365);
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
if (pendingURL) {
const a = document.createElement("a");
a.href = pendingURL;
a.download = "";
document.body.appendChild(a);
a.click();
a.remove();
pendingURL = null;
}
});
closeBtn.addEventListener("click", () => {
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
pendingURL = null;
});
});
</script>
<script>
function toggleSubmenu(e) {
e.preventDefault();

View File

@@ -1191,9 +1191,94 @@
<img src="https://mirrors.creativecommons.org/presskit/icons/nc.svg" alt="NC" style="max-width: 1em; max-height:1em; margin-left: .2em;">
<img src="https://mirrors.creativecommons.org/presskit/icons/sa.svg" alt="SA" style="max-width: 1em; max-height:1em; margin-left: .2em;">
</footer>
<div id="license-popup" class="license-popup hidden">
<div class="license-popup-content highlight">
<h2>DISCLAIMER</h2>
<div class="license-text">
<p><strong>"Phigros"</strong> is a game developed and owned by Pigeon Games. This archive is a fan made project and is not affiliated with, endorsed by, or officially connected to Pigeon Games or the Phigros development team.</p>
<p>By choosing to download, install, or use any of the provided files, you accept full responsibility for any outcomes. Although care has been taken to ensure the files are clean and safe, we are not responsible for any problems, errors, or damage that might occur as a result of using them.</p>
<p>ALL APK files and other materials available here are provided for personal use only, such as backup, educational reference, or preservation. These files are offered as is, with no guarantees about how well they work or whether they will function properly on every device or system.</p>
<p>For license and attribution info check <a href="../../notice/">NOTICE</a>.</p>
</div>
<div class="license-buttons">
<button id="agree" class="btn">Agree</button>
<button id="close-popup" class="btn alt">Disagree</button>
</div>
</div>
</div>
</body>
</html>
<script>
document.addEventListener("DOMContentLoaded", () => {
const popup = document.getElementById("license-popup");
const agree = document.getElementById("agree");
const closeBtn = document.getElementById("close-popup");
function setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/; SameSite=Lax`;
}
function getCookie(name) {
return document.cookie
.split("; ")
.find(c => c.startsWith(name + "="))
?.split("=")[1];
}
let pendingURL = null;
const buttons = document.querySelectorAll(".btn, .btn.alt");
buttons.forEach(el => {
el.addEventListener("click", e => {
if (el.classList.contains("btn-unavailable")) return;
if (getCookie("licenseAccepted")) {
return;
}
e.preventDefault();
pendingURL = el.href;
popup.classList.remove("hidden");
document.body.classList.add("body-locked");
});
});
agree.addEventListener("click", () => {
setCookie("licenseAccepted", "true", 365);
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
if (pendingURL) {
const a = document.createElement("a");
a.href = pendingURL;
a.download = "";
document.body.appendChild(a);
a.click();
a.remove();
pendingURL = null;
}
});
closeBtn.addEventListener("click", () => {
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
pendingURL = null;
});
});
</script>
<script>
function toggleSubmenu(e) {
e.preventDefault();

View File

@@ -38,9 +38,63 @@
<div class="version-list">
<!-- Version Cards-->
<!-- 3.18.1 -->
<div class="version-card" id="v3-18-1">
<h2>Phigros 3.18.1 (138) <span class="tag_G">Google - Latest Version</span></h2>
<p class="version-date">Released: 2025-12-17</p>
<p class="changelog"></p>
<ul class="changelog-list">
<li>Added 2 new songs to <a href="https://phigros.fandom.com/wiki/Songs#Single_Collection" title="Songs">Single Collection</a>
<ul><li><a href="https://phigros.fandom.com/wiki/Locomotive" title="Locomotive">Locomotive</a></li>
<li><a href="https://phigros.fandom.com/wiki/%E6%9C%80%E9%AB%98%E5%82%91%E4%BD%9C" title="最高傑作">最高傑作</a></li></ul></li>
<li>Made modifications to the AT chart of <a href="https://phigros.fandom.com/wiki/Hydra" title="Hydra">Hydra</a> and IN chart of <a href="https://phigros.fandom.com/wiki/BANGING_STRIKE" title="BANGING STRIKE">BANGING STRIKE</a></li>
<li>Fixed video playback issues</li>
<li>Disabled VSync to resolve frame rate halves on some devices</li>
<li>Fixed oversized note display on some devices</li>
<li>Other bug fixes and improvements</li>
</ul>
<!-- Toggle Button -->
<button class="dropdown-toggle" onclick="toggleDropdown(this)">
<span class="arrow">&#9654; </span> Show File Info
</button>
<!-- Hidden Content -->
<div class="dropdown-content">
<p><strong>File Name:</strong> Phigros_3.18.1_G.apk</p>
<p><strong>Version:</strong> 3.18.1</p>
<p><strong>Version Code:</strong> 138</p>
<p><strong>Package Name:</strong> com.PigeonGames.Phigros</p>
<p><strong>SHA2-256 =</strong> 03ED04BA516EB0D7D0FE36C026C4457B6C5A5A26F5E4F311ADB4F0FD1084F2A9</p>
<p><strong><br>Signature Details:</strong></p>
<p><strong><br>Signer #1 certificate DN:</strong> CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US</p>
<p><strong>Signer #1 certificate SHA-256 digest:</strong> </p>
<p>20cdcbda8907dc1893fea53b3fd2844eeff9527ddad7967c1365a07975d757c1</p>
<p><strong>Signer #1 certificate SHA-1 digest:</strong></p>
<p>dc74b84ce12f1521cd0b06e255a3f82b3d82f076</p>
<p><strong>Signer #1 certificate MD5 digest:</strong></p>
<p>daa72c1d4751df7d651ba953591da6c1</p>
<p><strong>Signer #1 key algorithm:</strong> RSA</p>
<p><strong>Signer #1 key size (bits):</strong> 4096</p>
<p><strong>Signer #1 public key SHA-256 digest:</strong> </p>
<p>9013cd8b2824fb7e33eaeec95aa16f8bbeaf5fa576e6442f3f2c5d0c23f895e8</p>
<p><strong>Signer #1 public key SHA-1 digest:</strong></p>
<p>0231bee3bb02dcce4c0092867d9ef6d813b5b5a6</p>
<p><strong>Signer #1 public key MD5 digest:</strong> </p>
<p>2f4aba1db1113dd5413f9cac83ddd1f9</p>
</div>
<h2></h2>
<div class="buttons">
<a href="https://files.phigros.lolmam.top/download?file=Phigros_3.18.1_G.apk&version=3.18.1&vcode=138" class="btn">Download APK</a>
<a href="https://files.phigros.lolmam.top/download?file=main.138.com.PigeonGames.Phigros.obb&version=3.18.1&vcode=138" class="btn alt">Download OBB</a>
<a href="https://files.phigros.lolmam.top/download?file=patch.138.com.PigeonGames.Phigros.obb&version=3.18.1&vcode=138" class="btn alt">Download Patch OBB</a>
</div>
</div>
<h2></h2>
<!-- 3.18.0 -->
<div class="version-card" id="v3-18-0">
<h2>Phigros 3.18.0 (137) <span class="tag_G">Google - Latest Version</span></h2>
<h2>Phigros 3.18.0 (137) <span class="tag_G">Google</span></h2>
<p class="version-date">Released: 2025-11-19</p>
<p class="changelog"></p>
@@ -2862,9 +2916,94 @@
<img src="https://mirrors.creativecommons.org/presskit/icons/nc.svg" alt="NC" style="max-width: 1em; max-height:1em; margin-left: .2em;">
<img src="https://mirrors.creativecommons.org/presskit/icons/sa.svg" alt="SA" style="max-width: 1em; max-height:1em; margin-left: .2em;">
</footer>
<div id="license-popup" class="license-popup hidden">
<div class="license-popup-content highlight">
<h2>DISCLAIMER</h2>
<div class="license-text">
<p><strong>"Phigros"</strong> is a game developed and owned by Pigeon Games. This archive is a fan made project and is not affiliated with, endorsed by, or officially connected to Pigeon Games or the Phigros development team.</p>
<p>By choosing to download, install, or use any of the provided files, you accept full responsibility for any outcomes. Although care has been taken to ensure the files are clean and safe, we are not responsible for any problems, errors, or damage that might occur as a result of using them.</p>
<p>ALL APK files and other materials available here are provided for personal use only, such as backup, educational reference, or preservation. These files are offered as is, with no guarantees about how well they work or whether they will function properly on every device or system.</p>
<p>For license and attribution info check <a href="../../notice/">NOTICE</a>.</p>
</div>
<div class="license-buttons">
<button id="agree" class="btn">Agree</button>
<button id="close-popup" class="btn alt">Disagree</button>
</div>
</div>
</div>
</body>
</html>
<script>
document.addEventListener("DOMContentLoaded", () => {
const popup = document.getElementById("license-popup");
const agree = document.getElementById("agree");
const closeBtn = document.getElementById("close-popup");
function setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/; SameSite=Lax`;
}
function getCookie(name) {
return document.cookie
.split("; ")
.find(c => c.startsWith(name + "="))
?.split("=")[1];
}
let pendingURL = null;
const buttons = document.querySelectorAll(".btn, .btn.alt");
buttons.forEach(el => {
el.addEventListener("click", e => {
if (el.classList.contains("btn-unavailable")) return;
if (getCookie("licenseAccepted")) {
return;
}
e.preventDefault();
pendingURL = el.href;
popup.classList.remove("hidden");
document.body.classList.add("body-locked");
});
});
agree.addEventListener("click", () => {
setCookie("licenseAccepted", "true", 365);
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
if (pendingURL) {
const a = document.createElement("a");
a.href = pendingURL;
a.download = "";
document.body.appendChild(a);
a.click();
a.remove();
pendingURL = null;
}
});
closeBtn.addEventListener("click", () => {
popup.classList.add("hidden");
document.body.classList.remove("body-locked");
pendingURL = null;
});
});
</script>
<script>
function toggleSubmenu(e) {
e.preventDefault();