Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHECKPOINT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Catatan terbaru: **[checkpoint.md](checkpoint.md)** — 29 Okt 2026 (WIB). **Rilis Cogan Smart ditahan owner** sampai diuji.

- v2.12.4 (versionCode 35): 🔍 Cari di tab Aplikasi (di atas daftar, sticky, semua aplikasi). Paket uji di `modules/cogan-smart/rilis/v2.12.4/`; belum diuji di HP.
- v2.12.3 (versionCode 34): Percaya/Lepas/blokir langsung, tanpa menunggu pindai (sebelumnya ±40 detik). Paket uji di `modules/cogan-smart/rilis/v2.12.3/`; belum diuji di HP.
- v2.12.2 (versionCode 33): pindai aplikasi gagal di HP ("Failed transaction") karena output Binder ke file `/data/adb`; kini lewat pipa. Readback blokir jujur, tombol blokir nonaktif sampai status terbaca. Paket uji di `modules/cogan-smart/rilis/v2.12.2/`. ✅ Pindai berjalan di HP owner 29 Okt 13.44 WIB.
- v2.12.1 (versionCode 32): perbaikan audit v2.12.0 (pengaman root manager gagal tertutup, readback blokir APK, satu pekerja blokir, anggaran waktu pindai). Temuan IFS jurnal tidak terbukti. Paket uji di `modules/cogan-smart/rilis/v2.12.1/`; belum diuji di HP.
Expand Down
10 changes: 8 additions & 2 deletions checkpoint.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Checkpoint — 29 Okt 2026 (WIB)

Cogan Smart **v2.12.3** (versionCode 34: Percaya/blokir langsung) di atas v2.12.2, yang pindainya sudah terbukti di HP. Siap diuji. **Rilis ditahan owner** sampai diuji. Sesi berikutnya baca `CLAUDE.md`, file ini dan `CHECKPOINT.md`, lalu tunggu instruksi owner. Jangan otomatis menguji HP, menjalankan build atau menerbitkan rilis.
Cogan Smart **v2.12.4** (versionCode 35: 🔍 Cari) di atas v2.12.3 (Percaya/blokir langsung) dan v2.12.2 (pindai terbukti di HP). Siap diuji. **Rilis ditahan owner** sampai diuji. Sesi berikutnya baca `CLAUDE.md`, file ini dan `CHECKPOINT.md`, lalu tunggu instruksi owner. Jangan otomatis menguji HP, menjalankan build atau menerbitkan rilis.

## v2.12.4 — Cari aplikasi (owner 29 Okt ±13.55 WIB, rilis tetap DITAHAN)

- **Permintaan owner** (screenshot daftar panjang dengan Pindai ulang di bawah): "Disebelah pindai bisa tambah cari ga? … ada saran peletakan yg tepat?" Saran yang dipakai: kotak cari di atas daftar (di atas filter) dan sticky, bukan di sebelah Pindai ulang yang ada di paling bawah.
- `apps.html`: `#appSearch` (`.find` sticky). `query` mencocokkan label atau nama paket; saat ada isian, mencari di semua aplikasi tanpa memedulikan filter. Pesan "Tidak ada aplikasi yang cocok dengan …" bila kosong. Ditambah i18n, Panduan (WebUI, PANDUAN.md/.en.md) dan tes Node (nama, paket, tidak cocok).
- [Paket uji](modules/cogan-smart/rilis/v2.12.4/Cogan-Smart-Kernel-v2.12.4.zip) 190463 byte, SHA256 `c32130a038a9dca1f676dd6c2bd3408846b2d6e65b1fc59e04e424a53587e47b` (dua kali dikemas, sama). Terukur lokal: semua tes lolos; Playwright 412 px tanpa error, kotak tetap di atas saat digeser. Belum diuji di HP.

## v2.12.3 — Percaya dan blokir langsung (owner 29 Okt ±13.45 WIB, rilis tetap DITAHAN)

Expand Down Expand Up @@ -34,7 +40,7 @@ Cogan Smart **v2.12.3** (versionCode 34: Percaya/blokir langsung) di atas v2.12.

## Sedang berjalan

- PR v2.12.3 (lihat bagian v2.12.3). v2.12.2 sudah di-merge (#84).
- PR v2.12.4 (lihat bagian v2.12.4). v2.12.3 sudah di-merge (#85).

## Sudah selesai (sesi 28–29 Okt)

Expand Down
12 changes: 12 additions & 0 deletions modules/cogan-smart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Cogan Smart Kernel

## Cari aplikasi / Search apps — v2.12.4 (paket uji / test build)

Indonesia:

- Permintaan owner 29 Okt: kotak **🔍 Cari** di tab Aplikasi. Letaknya di atas daftar (di atas pilihan Perlu dicek / Semua / Jarang dipakai) dan tetap terlihat saat daftar digeser, karena tombol Pindai ulang ada di paling bawah. Kotak ini mencari nama aplikasi atau nama paket di semua aplikasi, apa pun daftar yang dipilih, dan hasilnya langsung muncul tanpa pindai.
- Terukur lokal: tes lolos; Playwright 412 px tanpa error. Belum diuji di HP.

English:

- Owner request 29 Oct: a **🔍 Search** box in the Apps tab. It sits above the list (above Needs a look / All / Rarely used) and stays visible while scrolling, because Rescan is at the very bottom. It matches app names or package names across every app, whatever list is chosen, and filters at once without a scan.
- Measured locally: tests pass; Playwright at 412 px without errors. Not phone-tested yet.

## Percaya dan blokir langsung / Trust and block at once — v2.12.3 (paket uji / test build)

Indonesia:
Expand Down
1 change: 1 addition & 0 deletions modules/cogan-smart/PANDUAN.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Cogan Smart Kernel keeps the phone cool and records its temperature. This guide
- **Dangerous rights**: reads SMS (OTP codes), accessibility (can read and tap the screen), device admin (hard to remove), reads notifications, draws over other apps, hidden icon.
- **👁️ Activity**: when the app last used the camera, microphone, location, SMS, contacts, phone or clipboard, its internet use in 7 days and battery since the last full charge.
- **⚠️ Needs a look / All / 💤 Rarely used**: choose which list to show. Rarely used means not opened for 7 days or more.
- **🔍 Search** (above the list): type an app name or package name. It searches every app, whatever list is chosen.
- **🛡️ Trust**: the app is no longer flagged and cannot be removed by accident.
- **🗑 Remove completely**: releases its device admin, stops and removes the app for every user (Dual apps and Second space too), then deletes leftover data and identical APK files in storage. This cannot be undone. System apps and the root manager cannot be removed here.
- **🛡️ Block APKs from chat & social apps**: on by default. Chat, social, email and SMS apps (WhatsApp, Telegram, Signal, Instagram, Facebook, Threads, TikTok, X, Gmail, Outlook, Messages and more) cannot install apps. If the right is turned on again in Settings, the module takes it back within seconds and shows a notification. Browsers and file managers still can.
Expand Down
1 change: 1 addition & 0 deletions modules/cogan-smart/PANDUAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Cogan Smart Kernel menjaga HP tetap adem dan mencatat suhunya. Panduan ini menje
- **Izin berbahaya**: baca SMS (kode OTP), aksesibilitas (bisa membaca dan menekan layar), admin perangkat (sulit dihapus), baca notifikasi, tampil di atas aplikasi lain, ikon disembunyikan.
- **👁️ Gerak-gerik**: kapan terakhir aplikasi memakai kamera, mikrofon, lokasi, SMS, kontak, telepon atau clipboard, pemakaian internet 7 hari dan baterai sejak cas penuh.
- **⚠️ Perlu dicek / Semua / 💤 Jarang dipakai**: pilih daftar yang ditampilkan. Jarang dipakai artinya tidak dibuka 7 hari atau lebih.
- **🔍 Cari** (di atas daftar): ketik nama aplikasi atau nama paket. Pencarian mencakup semua aplikasi, apa pun daftar yang dipilih.
- **🛡️ Percaya**: aplikasi tidak ditandai lagi dan tidak bisa terhapus tanpa sengaja.
- **🗑 Hapus sampai akar**: melepas admin perangkat, menghentikan dan menghapus aplikasi dari semua pengguna (termasuk Aplikasi Ganda dan Ruang Kedua), lalu menghapus sisa data dan file APK yang sama di penyimpanan. Tidak bisa dibatalkan. Aplikasi sistem dan root manager tidak bisa dihapus dari sini.
- **🛡️ Blokir APK dari chat & sosmed**: bawaan aktif. Aplikasi chat, sosmed, email dan SMS (WhatsApp, Telegram, Signal, Instagram, Facebook, Threads, TikTok, X, Gmail, Outlook, Pesan dan lainnya) tidak bisa memasang aplikasi. Bila izinnya dinyalakan lagi di Pengaturan, modul mencabutnya dalam beberapa detik dan memberi notifikasi. Browser dan file manager tetap bisa.
Expand Down
3 changes: 2 additions & 1 deletion modules/cogan-smart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@

**Versi paket terbaru: v2.9.1** (`versionCode` 18): modul lebih hemat CPU, satu angka Badan HP dari HyperOS, lonjakan suhu, nama aplikasi asli, batas CPU di log, dan penyaringan sensor macet. Dampak optimisasi terakhir pada HP belum diukur. Catatan perubahan lengkap ada di [`CHANGELOG.md`](CHANGELOG.md); status publikasi ada di [Releases](https://github.com/cogan17/Cogan-Kernel/releases).

**Versi pengembangan: v2.12.3** (versionCode 34, Percaya/Lepas/blokir langsung tanpa pindai ulang; v2.12.2 pindai berjalan di HP: pindai aplikasi bekerja di HP: output Binder lewat pipa; perbaikan audit v2.12.0 dan v2.12.1): tab baru 📱 Aplikasi untuk memantau gerak-gerik aplikasi user, hapus sampai akar (admin perangkat dilepas, semua pengguna, sisa data, salinan APK) dan blokir APK dari chat & sosmed (bawaan aktif). Termasuk perbaikan v2.11.2 (pekerja tetap hidup setelah root manager ditutup). Belum diuji pada HP. v2.11.1 (Manager memantau, keluar sekali usap) dan hook ZRAM v2.10.8 sudah terbukti di HP. Rilis v2.9.1 tetap tersedia.
**Versi pengembangan: v2.12.4** (versionCode 35, 🔍 Cari di tab Aplikasi; v2.12.3: Percaya/Lepas/blokir langsung tanpa pindai ulang; v2.12.2 pindai berjalan di HP: pindai aplikasi bekerja di HP: output Binder lewat pipa; perbaikan audit v2.12.0 dan v2.12.1): tab baru 📱 Aplikasi untuk memantau gerak-gerik aplikasi user, hapus sampai akar (admin perangkat dilepas, semua pengguna, sisa data, salinan APK) dan blokir APK dari chat & sosmed (bawaan aktif). Termasuk perbaikan v2.11.2 (pekerja tetap hidup setelah root manager ditutup). Belum diuji pada HP. v2.11.1 (Manager memantau, keluar sekali usap) dan hook ZRAM v2.10.8 sudah terbukti di HP. Rilis v2.9.1 tetap tersedia.

📖 **Panduan pemakaian:** [PANDUAN.md](PANDUAN.md) · [English](PANDUAN.en.md)

## ⬇️ Unduh

| Versi | versionCode | ZIP siap pasang | Catatan | Salinan di repo | SHA256 ZIP |
|---|---|---|---|---|---|
| **v2.12.4** (paket uji cari aplikasi) | 35 | [Paket pembaruan](rilis/v2.12.4/Cogan-Smart-Kernel-v2.12.4.zip) | [What's New](rilis/v2.12.4/Cogan-Smart-v2.12.4-Whats-New-and-Fixes.txt) | [rilis/v2.12.4](rilis/v2.12.4) | `c32130a038a9dca1f676dd6c2bd3408846b2d6e65b1fc59e04e424a53587e47b` |
| **v2.12.3** (paket uji Percaya dan blokir langsung) | 34 | [Paket pembaruan](rilis/v2.12.3/Cogan-Smart-Kernel-v2.12.3.zip) | [What's New](rilis/v2.12.3/Cogan-Smart-v2.12.3-Whats-New-and-Fixes.txt) | [rilis/v2.12.3](rilis/v2.12.3) | `3079c3577a8bb2a9a042f9c5f0f3b3d726f8ebbe67650bddbabee6c78adc3d60` |
| **v2.12.2** (paket uji pindai aplikasi lewat pipa) | 33 | [Paket pembaruan](rilis/v2.12.2/Cogan-Smart-Kernel-v2.12.2.zip) | [What's New](rilis/v2.12.2/Cogan-Smart-v2.12.2-Whats-New-and-Fixes.txt) | [rilis/v2.12.2](rilis/v2.12.2) | `f3c5ccf16f6bfa5f6ef696dac73a3a98b7591dfd7c6c42c3c6b6816496f3a700` |
| **v2.12.1** (paket uji perbaikan audit) | 32 | [Paket pembaruan](rilis/v2.12.1/Cogan-Smart-Kernel-v2.12.1.zip) | [What's New](rilis/v2.12.1/Cogan-Smart-v2.12.1-Whats-New-and-Fixes.txt) | [rilis/v2.12.1](rilis/v2.12.1) | `4568aeb4b1fe0e8c85f33b9cb13d47d7572898799e9226e4653d0dc42669a8e8` |
Expand Down
4 changes: 2 additions & 2 deletions modules/cogan-smart/module.prop
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
id=cogan_smart
name=Cogan Smart Kernel
version=v2.12.3
versionCode=34
version=v2.12.4
versionCode=35
author=cogan17
description=Satu modul: mode Hemat · Kernel Default · Performa, kontrol CPU/cas dengan readback, monitor suhu, log dan penyebab panas, Manager sebagai pusat kendali (ringkasan semua tab, CPU/RAM), tab Aplikasi (pantau, hapus sampai akar, blokir APK dari chat/sosmed), Mode Dev, panduan, penjaga modul (whitelist, hapus sampai akar). Mengenali perangkat dan kernel Cogan (Cogan Bridge bila tersedia).
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Cogan Smart Kernel v2.12.4 / versionCode 35 — paket uji / test build

Indonesia

Baru:
- 🔍 Cari di tab Aplikasi: di atas daftar dan tetap terlihat saat digeser. Ketik nama aplikasi atau nama paket; mencari di semua aplikasi.

Batas:
- Belum diuji di HP.

Cara uji:
1. Pasang sebagai pembaruan modul melalui root manager, lalu reboot.
2. Buka tab 📱 Aplikasi, ketik "net" di kotak Cari: Netflix langsung muncul.

English

New:
- 🔍 Search in the Apps tab: above the list and visible while scrolling. Type an app name or package name; it searches every app.

Limits:
- Not phone-tested yet.

How to test:
1. Install as a module update through the root manager, then reboot.
2. Open the 📱 Apps tab and type "net" in the Search box: Netflix shows at once.
6 changes: 3 additions & 3 deletions modules/cogan-smart/webroot/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Cogan Smart · Tentang</title>
<link rel="stylesheet" href="theme.css?v=2.12.3">
<script src="i18n.js?v=2.12.3"></script>
<link rel="stylesheet" href="theme.css?v=2.12.4">
<script src="i18n.js?v=2.12.4"></script>
<script>try { document.documentElement.dataset.theme = localStorage.getItem('cogan.theme') || ''; document.documentElement.dataset.dev = localStorage.getItem('cogan.dev') || ''; document.documentElement.lang = localStorage.getItem('cogan.lang') || 'id'; } catch (_) { /* storage off: defaults */ }</script>
<style>
* { box-sizing: border-box; }
Expand Down Expand Up @@ -133,7 +133,7 @@ <h2 lang="en">🔏 Authenticity</h2>
<p class="credit">Maintainer <b>Cogan17</b> &nbsp;·&nbsp; kernel <b>Cogan Rothko</b> &nbsp;·&nbsp; <b>KernelSU Next</b></p>
</main>

<script src="client.js?v=2.12.3"></script>
<script src="client.js?v=2.12.4"></script>
<script>
const POWER = '/data/adb/modules/cogan_smart/power/report.sh';
const UI = CoganUI, power = UI.create(POWER), root = document.documentElement;
Expand Down
20 changes: 14 additions & 6 deletions modules/cogan-smart/webroot/apps.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Cogan Smart · Aplikasi</title>
<link rel="stylesheet" href="theme.css?v=2.12.3">
<script src="i18n.js?v=2.12.3"></script>
<link rel="stylesheet" href="theme.css?v=2.12.4">
<script src="i18n.js?v=2.12.4"></script>
<script>try { document.documentElement.dataset.theme = localStorage.getItem('cogan.theme') || ''; document.documentElement.dataset.dev = localStorage.getItem('cogan.dev') || ''; } catch (_) { /* storage off: follow the phone */ }</script>
<style>
* { box-sizing: border-box; }
Expand Down Expand Up @@ -58,6 +58,9 @@
@keyframes cogan-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .feedback.working::before { animation: none; } details.fold > summary::after { transition: none; } }
.filters { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 2px 12px; }
.find { position: sticky; top: 0; z-index: 5; background: var(--bg); padding: 6px 0 8px; }
.find input { width: 100%; font: inherit; color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; min-height: 44px; }
.find input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.filters button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); font-weight: 600; }
.facts { font-size: 13px; margin: 6px 0; } .facts div { margin: 2px 0; }
</style>
Expand Down Expand Up @@ -85,6 +88,7 @@ <h1>🧠 Cogan Smart</h1>
<div class="row"><button id="blockOn" data-action disabled>🛡️ Aktifkan</button><button id="blockOff" data-action disabled>Matikan</button></div>
</details>

<div class="find"><input id="appSearch" type="search" aria-label="Cari aplikasi" placeholder="🔍 Cari di semua aplikasi…" autocomplete="off" spellcheck="false"></div>
<div class="filters" role="group" aria-label="Tampilkan">
<button data-filter="risk" aria-pressed="true">⚠️ Perlu dicek</button><button data-filter="all" aria-pressed="false">Semua</button><button data-filter="idle" aria-pressed="false">💤 Jarang dipakai</button>
</div>
Expand All @@ -96,7 +100,7 @@ <h1>🧠 Cogan Smart</h1>
</main>

<div id="actionStatus" class="feedback hidden" role="status" aria-live="polite"></div>
<script src="client.js?v=2.12.3"></script>
<script src="client.js?v=2.12.4"></script>
<script>
// Aplikasi (owner 2026-10-29): what user apps do, removal down to the roots, and the APK block for chat apps.
const confirm = value => window.confirm(CoganI18n.t(value));
Expand All @@ -113,7 +117,7 @@ <h1>🧠 Cogan Smart</h1>
// quick: status, whitelist and the block switch on their own queue, so they never wait behind a full scan.
const UI = CoganUI, api = UI.create(REPORT), quick = UI.create(REPORT);
const opened = new Set(), labels = new Map();
let feedbackTimer, data = null, actionRunning = false, filter = 'risk', block = null, sources = [];
let feedbackTimer, data = null, actionRunning = false, filter = 'risk', block = null, sources = [], query = '';
try { filter = localStorage.getItem('cogan.apps.filter') || 'risk'; } catch (_) { /* storage off */ }

function esc(s) { return String(s).replace(/[&<>"']/g, c => ({'&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;'})[c]); }
Expand Down Expand Up @@ -180,10 +184,12 @@ <h3>👁️ Gerak-gerik</h3>
sources = d.block.sources;
if (block) renderBlock(block);
for (const f of document.querySelectorAll('[data-filter]')) f.setAttribute('aria-pressed', String(f.dataset.filter === filter));
const shown = d.apps.filter(a => filter === 'all' || (filter === 'risk' ? a.risk > 0 && !a.trusted : idleDays(a) >= 7))
// Search looks through every app, by name or package, whatever list is chosen (owner 29 Oct).
const found = a => name(a.p).toLowerCase().includes(query) || a.p.toLowerCase().includes(query);
const shown = d.apps.filter(a => query ? found(a) : filter === 'all' || (filter === 'risk' ? a.risk > 0 && !a.trusted : idleDays(a) >= 7))
.sort((x, y) => (y.risk - x.risk) || (filter === 'idle' ? idleDays(y) - idleDays(x) : 0) || name(x.p).localeCompare(name(y.p)));
UI.html('apps', shown.length ? shown.map(appCard).join('')
: `<div class="card muted">${filter === 'risk' ? 'Tidak ada aplikasi yang perlu dicek. 👍' : filter === 'idle' ? 'Tidak ada aplikasi yang tidak dipakai 7 hari atau lebih.' : 'Belum ada aplikasi.'}</div>`);
: `<div class="card muted">${query ? `Tidak ada aplikasi yang cocok dengan "${esc(query)}".` : filter === 'risk' ? 'Tidak ada aplikasi yang perlu dicek. 👍' : filter === 'idle' ? 'Tidak ada aplikasi yang tidak dipakai 7 hari atau lebih.' : 'Belum ada aplikasi.'}</div>`);
}

// The block card follows its own light status read, never a cached or failed scan (audit 29 Oct): until that read
Expand Down Expand Up @@ -221,6 +227,8 @@ <h3>👁️ Gerak-gerik</h3>
finally { actionRunning = false; }
}
function setup() {
$('appSearch').placeholder = CoganI18n.t('🔍 Cari di semua aplikasi…');
$('appSearch').oninput = () => { query = $('appSearch').value.trim().toLowerCase(); if (data) render(data); };
UI.folds();
$('rescan').onclick = () => run($('rescan'), 'Memindai aplikasi…', async () => { await scan(); toast('Pemindaian selesai'); });
// The action reports itself; a scan that fails afterwards shows its own error and does not undo the toast.
Expand Down
Loading
Loading