Wednesday, 29 October 2025

tabel di install.xml dan di DB beda

 

Betul, Guru Duan. install.xml Anda saat ini hanya mendefinisikan 3 tabel:

  • local_jurnalmengajar

  • local_jurnalmengajar_suratizin

  • local_jurnallayananbk

Sementara di DB ada 9 tabel:

  • mdl_local_jm_nilaihariantidak ada di install.xml

  • mdl_local_jurnalguruwalitidak ada

  • mdl_local_jurnallayananbk ← sudah ada

  • mdl_local_jurnalmengajar ← sudah ada

  • mdl_local_jurnalmengajar_bebantidak ada

  • mdl_local_jurnalmengajar_suratizin ← sudah ada

  • mdl_local_jurnalmengajar_suratizingurutidak ada

  • mdl_local_jurnalpembinaantidak ada

  • mdl_local_jurnalpramukatidak ada

Jadi, ada 6 tabel “local_…” yang tidak tercantum di install.xml.

Apa artinya?

  • install.xml hanya dipakai saat instalasi baru plugin.

  • Perubahan setelah itu harus lewat db/upgrade.php (Moodle tidak pernah menghapus/menurunkan skema otomatis untuk mencegah kehilangan data).

  • Karena sebagian tabel lahir dari versi sebelumnya/SQL manual/upgrade steps, DB Anda bisa lebih “kaya” dari install.xml.

Rekomendasi aman

  1. Konsolidasikan skema: pastikan semua tabel yang memang bagian plugin masuk ke install.xml dan/atau dibuat lewat upgrade.php.

    • Pilihan A (disarankan): Lengkapi install.xml dengan definisi 6 tabel yang belum ada, sehingga instalasi baru akan lengkap.

    • Pilihan B: Biarkan install.xml tetap minimal, tapi pastikan upgrade.php meng-create tabel-tabel tersebut ketika upgrade dari versi lawas.

  2. Jangan drop tabel “tambahan” kecuali Anda yakin tidak dipakai. Selalu backup dulu:

    mysqldump -u root -p moodle mdl_local_jurnalguruwali mdl_local_jurnalpembinaan ... > backup_local_extra.sql
    

Cara cepat sinkron

  • XMLDB Editor (Site administration → Development → XMLDB editor)
    Buat/rapikan definisi tabel-tabel yang belum ada (nama tanpa prefix mdl_).

  • Contoh kerangka install.xml untuk satu tabel yang belum ada (sesuaikan kolomnya):

    <TABLE NAME="local_jurnalmengajar_beban" COMMENT="Beban jam mengajar per guru/kelas">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
        <FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true"/>
        <FIELD NAME="kelas" TYPE="char" LENGTH="20" NOTNULL="true"/>
        <FIELD NAME="jam_per_minggu" TYPE="int" LENGTH="3" NOTNULL="true" DEFAULT="0"/>
        <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0"/>
      </FIELDS>
      <KEYS>
        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
        <KEY NAME="userid_fk" TYPE="foreign" FIELDS="userid" REFTABLE="user" REFFIELDS="id"/>
      </KEYS>
    </TABLE>
    
  • Contoh upgrade.php untuk membuat tabel jika belum ada (aman untuk site yang sudah jalan):

    if ($oldversion < 2025102901) {
        $table = new xmldb_table('local_jurnalmengajar_beban');
    
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        $table->add_field('kelas', XMLDB_TYPE_CHAR, '20', null, XMLDB_NOTNULL, null, null);
        $table->add_field('jam_per_minggu', XMLDB_TYPE_INTEGER, '3', null, XMLDB_NOTNULL, null, '0');
        $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0');
    
        $table->add_key('primary', XMLDB_KEY_PRIMARY, ['id']);
        $table->add_key('userid_fk', XMLDB_KEY_FOREIGN, ['userid'], 'user', ['id']);
    
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
    
        upgrade_plugin_savepoint(true, 2025102901, 'local', 'jurnalmengajar');
    }
    

    Ulangi pola itu untuk:

    • local_jurnalguruwali

    • local_jurnalmengajar_suratizinguru

    • local_jurnalpembinaan

    • local_jurnalpramuka

    • local_jm_nilaiharian

Tips teknis

  • Prefix mdl_: di XML jangan pakai mdl_; Moodle menambahkan prefix otomatis sesuai $CFG->prefix.

  • VERSION & version.php: setelah memperbarui install.xml/upgrade.php, naikkan $plugin->version di version.php agar langkah upgrade dieksekusi.

  • Audit cepat kolom: untuk menulis skema akurat, lihat struktur tiap tabel:

    DESCRIBE mdl_local_jurnalguruwali;
    DESCRIBE mdl_local_jurnalmengajar_suratizinguru;
    DESCRIBE mdl_local_jurnalpembinaan;
    DESCRIBE mdl_local_jurnalpramuka;
    DESCRIBE mdl_local_jm_nilaiharian;
    DESCRIBE mdl_local_jurnalmengajar_beban;
    

    Samakan tipe/NOT NULL/default/foreign key di XML/upgrade.

Kalau Guru mau, saya bisa bantu tuliskan blok XML lengkap untuk ke-6 tabel itu berdasarkan output DESCRIBE masing-masing (tinggal ditempel di sini).

Monday, 27 October 2025

Install Moodle part 1

 

Sip Guru Duan 😎

buat database baru dan user-nya supaya Moodle bisa dipasang bersih dari nol.


🗃️ 1. Buat Database dan User Moodle Baru

Jalankan perintah berikut di terminal:

sudo mariadb

Lalu ketik perintah SQL ini satu per satu:

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'passwordku';
GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

📘 Keterangan:

  • moodle → nama database baru.

  • moodleuser → user khusus untuk Moodle.

  • passwordku → ganti dengan sandi aman pilihan Guru Duan.


🧱 2. Cek hasil pembuatan

Pastikan database dan user sudah ada:

sudo mariadb -e "SHOW DATABASES;"
sudo mariadb -e "SELECT user, host FROM mysql.user WHERE user='moodleuser';"

🧩 3. Lanjut ke instalasi Moodle

Sekarang database siap.
Langkah berikut:

  1. Unduh dan ekstrak Moodle terbaru ke /var/www/html/moodle

  2. Buat /var/moodledata

  3. Atur permission ke www-data

  4. Jalankan instalasi via browser di http://localhost/moodle


Apakah Guru Duan ingin saya lanjutkan bagian instalasi Moodle (mulai dari download sampai tampil di browser) langkah demi langkah berikutnya?

Friday, 17 October 2025

Konfigurasi pcq dan queue simple secara fair

 saya sudah atur mikrotik untuk 2 ruan ujian TKA:
/queue type
add name=pcq-download-fair kind=pcq pcq-classifier=dst-address pcq-rate=0
add name=pcq-upload-fair   kind=pcq pcq-classifier=src-address pcq-rate=0

/queue simple
add name="Komputer_All" target=10.10.10.0/24 \
    limit-at=32M/32M max-limit=40M/40M \
    queue=pcq-upload-fair/pcq-download-fair

add name="Bahasa_All"  target=10.10.20.0/24 \
    limit-at=31M/31M max-limit=40M/40M \
    queue=pcq-upload-fair/pcq-download-fair

Konfigurasi pcq dan queue simple yang sudah Guru buat sudah cukup adil dan stabil untuk dua subnet ruang ujian (10.10.10.0/24 dan 10.10.20.0/24), karena pcq otomatis membagi bandwidth secara merata antar client aktif.


Jika Guru sudah menggunakan pcq-rate=0, Mikrotik akan otomatis membagi max-limit antar client aktif (misalnya 40 Mbps dibagi 40 client → ±1 Mbps per client).
Jadi tanpa burst pun setiap klien sudah mendapatkan jatah cukup rata dan efisien 

maksimal 1 client 1 mbps

 Bisa! Kita atur supaya **saat penuh** (63 klien) tiap klien ≈ **0,8 Mbps**, tapi kalau tidak penuh mereka bisa naik sampai **1 Mbps**. Caranya: **PCQ 1 Mbps per-klien** + **limit-at total per-ruang = 0,8 Mbps × jumlah klien ruang**. Pakai **Simple Queue per ruang** (lebih simpel daripada Queue Tree) — PCQ akan otomatis membagi *limit-at* rata ke klien aktif, dan tidak melewati 1 Mbps karena `pcq-rate=1M`.

## Langkah (paste di Terminal)

> (Hapus/disable queue lama dulu kalau masih ada)
> /queue simple remove [find]

```bash
# 1) Tipe PCQ: batasi per klien maksimal 1 Mbps
/queue type
add name=pcq-download-1M kind=pcq pcq-classifier=dst-address pcq-rate=1M
add name=pcq-upload-1M   kind=pcq pcq-classifier=src-address pcq-rate=1M

# 2) Simple Queue per RUANG, dengan limit-at (jaminan total saat penuh)
#    Ruang Komputer: 32 klien → limit-at = 32 × 0.8M = 25.6M, max-limit = 32M
/queue simple
add name="Komputer_All" target=10.10.10.0/24 \
    limit-at=25.6M/25.6M max-limit=32M/32M \
    queue=pcq-upload-1M/pcq-download-1M

#    Ruang Bahasa: 31 klien → limit-at = 31 × 0.8M = 24.8M, max-limit = 31M
add name="Bahasa_All" target=10.10.20.0/24 \
    limit-at=24.8M/24.8M max-limit=31M/31M \
    queue=pcq-upload-1M/pcq-download-1M
```

### Kenapa ini sesuai kebutuhan?

* **Saat penuh** (semua klien aktif):
  *limit-at total* (25.6M & 24.8M) akan **dibagi rata oleh PCQ** → ≈ **0,8 Mbps/klien**.
* **Saat tidak penuh**:
  tiap klien bisa **naik** sampai **1 Mbps** (dibatasi `pcq-rate=1M`), karena masih ada ruang hingga *max-limit* 32M/31M.
* Total agregat ≈ **60 Mbps** (32M+31M), cocok dengan paket Indihome efektif.

### (Opsional) Tambah “burst” biar loading awal cepat

```bash
/queue simple set [find name="Komputer_All"] burst-limit=2M/2M burst-threshold=500k/500k burst-time=10s/10s
/queue simple set [find name="Bahasa_All"]   burst-limit=2M/2M burst-threshold=500k/500k burst-time=10s/10s
```

### Penting

* Pastikan **FastTrack dimatikan** supaya queue bekerja:

```bash
/ip firewall filter remove [find action=fasttrack-connection]
```

### Cara cek

* Lihat pembagian realtime:

```bash
/queue simple print stats
```

* Uji speedtest dari beberapa klien kedua ruang:
  • saat 2–3 klien → mereka akan dekat **1 Mbps**
  • saat ramai (penuh) → sekitar **0,8 Mbps/klien**.

Kalau mau, saya bisa sesuaikan angka limit-at sesuai *real* jumlah klien aktif (mis. Bahasa 30, Komputer 33), tinggal bilang — saya kasih skripnya.

Thursday, 16 October 2025

Uji PPPoE di Ubuntu

 

Ya, bisa sekali, Guru Duan ✅ — Ubuntu bisa digunakan untuk menguji username dan password PPPoE IndiHome tanpa Mikrotik, langsung dari terminal.
Tujuannya: memastikan kredensial PPPoE yang diberikan oleh Telkom benar sebelum kamu pasang di Mikrotik.

Berikut langkah lengkapnya 👇


⚙️ Langkah Uji PPPoE di Ubuntu

1️⃣ Pastikan koneksi langsung ke modem

Hubungkan laptop Ubuntu langsung ke port LAN modem IndiHome yang sudah di-bridge.

⚠️ Jangan lewat Mikrotik dulu — langsung dari modem ke laptop (kabel LAN).


2️⃣ Nonaktifkan koneksi lain

Matikan semua koneksi Wi-Fi atau interface aktif selain port LAN:

nmcli radio wifi off

Atau matikan dari ikon jaringan (Network Manager).


3️⃣ Jalankan perintah untuk membuat koneksi PPPoE baru

Gunakan NetworkManager (cara paling mudah):

nmcli connection add type pppoe ifname eth0 con-name indihome-pppoe username "username@telkom.net" password "password"

Ganti eth0 dengan nama interface LAN kamu (cek dengan ip link — bisa enp3s0, enp1s0, dll).
Ganti username@telkom.net dan password sesuai kredensial Telkom kamu.


4️⃣ Aktifkan koneksi PPPoE

nmcli connection up indihome-pppoe

Jika berhasil, kamu akan langsung dapat IP publik (cek berikutnya 👇).


5️⃣ Tes koneksi internet

ip addr show ppp0
ping 8.8.8.8 -c 4
curl https://ifconfig.me

✅ Kalau:

  • ping sukses,

  • dan curl menampilkan IP publik (biasanya 125.x.x.x atau 36.x.x.x milik Telkom),

berarti username/password PPPoE kamu valid dan berfungsi.


6️⃣ Putuskan koneksi setelah selesai uji

nmcli connection down indihome-pppoe

Setelah itu, kabel LAN boleh dipindah ke Mikrotik ether1 untuk konfigurasi PPPoE client.


💡 Alternatif CLI Manual (tanpa NetworkManager)

Jika kamu ingin uji dari pure terminal (tanpa nmcli):

  1. Instal pppoe tools:

    sudo apt install pppoeconf
    
  2. Jalankan konfigurator:

    sudo pppoeconf
    

    Ikuti petunjuk → masukkan username & password → pilih “Yes” saat diminta “Start connection at boot”.

  3. Untuk konek:

    sudo pon dsl-provider
    

    Untuk putus:

    sudo poff
    

🔍 Tips Debug

Jika gagal konek, lihat log PPPoE:

journalctl -u NetworkManager -f

atau

tail -f /var/log/syslog

Biasanya akan muncul pesan seperti:

  • Authentication failed → username/password salah.

  • No PPPoE access concentrator found → modem belum benar-benar mode bridge.


Apakah Guru Duan ingin saya bantu buatkan skrip shell otomatis untuk menguji PPPoE di Ubuntu (tinggal isi username/password dan jalan satu perintah)?

Sunday, 12 October 2025

2 indihome TKA daring

 

Siap, Guru Duan. Berikut analisis per-IndiHome untuk skenario ujian online langsung ke server pusat dengan 2 router terpisah.

Ringkasan cepat

  • Asumsi performa tiap link (acuan speedtest): ≈ 88.6 Mbps down / 32.9 Mbps up.

  • Kebutuhan TKA: ≈ 0,4 Mbps per client (up & down).


A) IndiHome 162219201282 — 53 client

Komposisi: 47 LAN + 6 via AP

Kebutuhan minimum

  • Down: 53 × 0,4 = 21,2 Mbps

  • Up: 53 × 0,4 = 21,2 Mbps

Kapasitas vs kebutuhan

  • Down headroom: 88,6 / 21,2 ≈ 4,2× aman

  • Up headroom: 32,9 / 21,2 ≈ 1,55× amanupload jadi batas terendah (tetap cukup)

Catatan teknis & saran

  1. Prioritaskan LAN (sudah 47 klien kabel, bagus). Pastikan semua port Gigabit (ONT ⇄ switch ⇄ PC).

  2. AP untuk 6 klien: 5 GHz only, 40 MHz, TX power medium (±17–18 dBm), channel berbeda dengan AP di Lab 3 (hindari co-channel).

  3. Aktifkan QoS/Smart Queue (jika ada) untuk fair-share upload saat submit massal.

  4. Blok/limit trafik non-ujian (Windows Update, OneDrive, YouTube) di jam ujian.

  5. DNS: pakai 1.1.1.1 / 8.8.8.8 jika resolusi lambat, tapi tetap pastikan domain TKA tidak diblok.

  6. Monitoring cepat:

    • Get-NetAdapter | ft Name,Status,LinkSpeed (Windows) → harus 1.0 Gbps

    • speedtest --server <ID terdekat> pagi/siang/sore untuk log performa

    • ping <host TKA> -n 50 target < 70 ms, 0% loss

Kesimpulan link A: cukup untuk 53 klien; upload pas-pas tapi masih ada margin. Jaga disiplin trafik agar spike upload tidak menyentuh 100%.


B) IndiHome 161219200007 — 30 client

Komposisi: semua via Ubiquiti UAP-AC-PRO (Wi-Fi 5 GHz)

Kebutuhan minimum

  • Down: 30 × 0,4 = 12 Mbps

  • Up: 30 × 0,4 = 12 Mbps

Kapasitas vs kebutuhan

  • Down headroom: 88,6 / 12 ≈ 7,4× aman

  • Up headroom: 32,9 / 12 ≈ 2,7× aman

Fokus utama: airtime Wi-Fi, bukan WAN.

Konfigurasi UAP-AC-PRO (penting)

  1. Band 5 GHz only, 40 MHz (jangan 80 MHz agar efisien multi-klien).

  2. Channel non-DFS (36/40/44/48); jangan sama dengan AP di link A.

  3. TX power: Medium (17–18 dBm) agar airtime efisien & klien tidak jauh-jauh.

  4. Min RSSI ≈ −75 dBm (opsional) untuk tendang klien sinyal lemah.

  5. Disable band steering saat ujian; pastikan semua tersambung ke 5 GHz.

  6. Target SNR per kursi > 25 dB (RSSI > −60 dBm ideal).

  7. Jika ruang luas/sekat tebal: tambah 1 AP kedua dan bagi 15-15 klien (SSID sama, channel berbeda). Untuk kebutuhan 12 Mbps total, 1 AP masih mencukupi bila penempatan & sinyal bagus.

Kesimpulan link B: sangat aman untuk 30 klien. Pastikan penempatan AP optimal dan hindari interferensi.


Validasi terakhir (pra-ujian, 10 menit)

  • Ping ke host TKA dari 3 PC acak per ruang (50 paket) → loss 0%, jitter rendah.

  • Speedtest singkat ke server terdekat (Banjarmasin/Surabaya/Telkom) dari 1 PC per link → pastikan upload > 25 Mbps saat idle.

  • Cek link speed di PC acak LAN → 1.0 Gbps.

  • Cek jumlah klien di dashboard UniFi/Controller → ≤ 30 di AC-PRO, RSSI rata-rata > −60 dBm.


Kesimpulan umum

  • 162219201282 (53 klien): aman; upload jadi faktor pembatas tapi masih >1,5× dari kebutuhan.

  • 161219200007 (30 klien via AC-PRO): aman; pastikan setting Wi-Fi 5 GHz optimal.

  • Dengan dua router terpisah, fault isolation bagus: jika satu link lemot, ruang lain tetap jalan.

Butuh checklist 1-halaman untuk teknisi hari-H (parameter AP, QoS, blokir update, langkah cek cepat)? Saya susunkan siap pakai.

Tuesday, 12 August 2025

hdd server root penuh

 # df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           585M  1.2M  584M   1% /run
/dev/sda6       247G  235G     0 100% /
tmpfs           2.9G     0  2.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/loop3      105M  105M     0 100% /snap/core/17210
/dev/loop4       64M   64M     0 100% /snap/core20/2582
/dev/loop1       64M   64M     0 100% /snap/core20/2599
/dev/loop2       55M   55M     0 100% /snap/certbot/4737
/dev/loop5       67M   67M     0 100% /snap/core24/1006
/dev/loop7      105M  105M     0 100% /snap/core/17212
/dev/loop0       67M   67M     0 100% /snap/core24/1055
/dev/sda2        96M   26M   71M  27% /boot/efi
/dev/loop8       55M   55M     0 100% /snap/certbot/4892
tmpfs           585M  4.0K  585M   1% /run/user/0


===========

# du -xh --max-depth=1 /var | sort -h
4.0K    /var/local
4.0K    /var/opt
28K    /var/tmp
68K    /var/snap
3.4M    /var/mail
137M    /var/spool
212M    /var/moodledata
308M    /var/backup
497M    /var/backups
729M    /var/cache
1.7G    /var/lib
1.9G    /var/www
220G    /var/log
225G    /var
 

 

======================

find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
 

 

Sunday, 10 August 2025

Kirim folder backup whatsapp ke hp

 adb push ~/backup_whatsapp/Backups   /sdcard/Android/media/com.whatsapp/WhatsApp/
adb push ~/backup_whatsapp/Databases /sdcard/Android/media/com.whatsapp/WhatsApp/
adb push ~/backup_whatsapp/Media     /sdcard/Android/media/com.whatsapp/WhatsApp/



Berarti restore-nya tinggal kirim 3 folder itu balik ke HP di path:

/sdcard/Android/media/com.whatsapp/WhatsApp/

Perintah di Ubuntu:

adb push ~/backup_whatsapp/Backups   /sdcard/Android/media/com.whatsapp/WhatsApp/
adb push ~/backup_whatsapp/Databases /sdcard/Android/media/com.whatsapp/WhatsApp/
adb push ~/backup_whatsapp/Media     /sdcard/Android/media/com.whatsapp/WhatsApp/

📌 Catatan penting

  • WhatsApp jangan dibuka dulu sebelum semua folder dipindahkan.

  • Kalau HP minta izin transfer file (MTP) di notifikasi, aktifkan dulu.

  • Setelah selesai push, baru buka WhatsApp dan verifikasi nomor → pilih Pulihkan dari backup lokal.

Kalau mau, saya bisa buatkan satu perintah gabungan biar semua folder langsung terkirim tanpa 3 kali ketik. Mau dibuatkan?


Saturday, 9 August 2025

Ekstrak boot.img dari file OTA v612 itel P55 5G

 

Siap Guru 👍
Berarti perintah lengkapnya di Ubuntu untuk ekstrak boot.img dari file itu adalah:


# 1. Pasang Golang (sekali saja)
sudo apt update
sudo apt install golang -y

# 2. Clone payload-dumper-go
cd ~
git clone https://github.com/ssut/payload-dumper-go.git
cd payload-dumper-go
go build

# 3. Ekstrak payload.bin
./payload-dumper-go "/home/dhwan/Downloads/itel/1DM/Compressed/P661N_V612_OTA/payload.bin"

📌 Setelah proses selesai:

  • Hasil ekstrak ada di folder output/ di dalam payload-dumper-go.

  • Ambil file boot.img dari folder itu.

  • Copy ke HP → patch di KernelSU Manager → hasil patch kirim balik ke PC → flash via fastboot.


Kalau mau, saya bisa langsung kasih lanjutan perintah flash ke HP setelah patch, supaya Guru langsung root tanpa bolak-balik tanya.
Mau saya tulis lanjutannya?

 

 

~/payload-dumper-go$ ./payload-dumper-go "/home/dhwan/Downloads/itel/1DM/Compressed/P661N_V612_OTA/payload.bin"
payload.bin: /home/dhwan/Downloads/itel/1DM/Compressed/P661N_V612_OTA/payload.bin
Payload Version: 2
Payload Manifest Length: 406896
Payload Manifest Signature Length: 267
Found partitions:
boot (42 MB), dpm (152 kB), dtbo (8.4 MB), gz (2.7 MB), lk (1.3 MB), logo (1.7 MB), mcupm (406 kB), md1img (64 MB), pi_img (8.2 kB), preloader_raw (434 kB), product (854 MB), scp (406 kB), spmfw (16 kB), sspm (660 kB), system (930 MB), system_ext (1.5 GB), tee (983 kB), tkv (532 kB), tr_carrier (348 kB), tr_company (348 kB), tr_mi (348 kB), tr_preload (1.5 GB), tr_product (733 MB), tr_region (348 kB), tr_theme (348 kB), vbmeta (12 kB), vbmeta_system (4.1 kB), vbmeta_vendor (4.1 kB), vendor (893 MB), vendor_boot (67 MB)
Number of workers: 4
Unhandled operation type: SOURCE_COPY
Unhandled operation type: BROTLI_BSDIFF
Unhandled operation type: BROTLI_BSDIFF
dpm (152 kB)   [=========================================================================================================] 100 %
boot (42 MB)   [=========================================================================================================] 100 %
dtbo (8.4 MB)  [=========================================================================================================] 100 %
dpm (152 kB)   [=========================================================================================================] 100 %
dpm (152 kB)    [========================================================================================================] 100 %
boot (42 MB)    [========================================================================================================] 100 %
dpm (152 kB)     [=======================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dtbo (8.4 MB)           [================================================================================================] 100 %
gz (2.7 MB)             [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dtbo (8.4 MB)           [================================================================================================] 100 %
gz (2.7 MB)             [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dtbo (8.4 MB)           [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dtbo (8.4 MB)           [================================================================================================] 100 %
gz (2.7 MB)             [================================================================================================] 100 %
dpm (152 kB)            [================================================================================================] 100 %
boot (42 MB)            [================================================================================================] 100 %
dtbo (8.4 MB)           [================================================================================================] 100 %
gz (2.7 MB)             [================================================================================================] 100 %
lk (1.3 MB)             [================================================================================================] 100 %
logo (1.7 MB)           [================================================================================================] 100 %
mcupm (406 kB)          [================================================================================================] 100 %
md1img (64 MB)          [================================================================================================] 100 %
pi_img (8.2 kB)         [================================================================================================] 100 %
preloader_raw (434 kB)  [================================================================================================] 100 %
product (854 MB)        [================================================================================================] 100 %
scp (406 kB)            [================================================================================================] 100 %
spmfw (16 kB)           [================================================================================================] 100 %
sspm (660 kB)           [================================================================================================] 100 %
system (930 MB)         [================================================================================================] 100 %
system_ext (1.5 GB)     [================================================================================================] 100 %
tee (983 kB)            [================================================================================================] 100 %
tkv (532 kB)            [================================================================================================] 100 %
tr_carrier (348 kB)     [================================================================================================] 100 %
tr_company (348 kB)     [================================================================================================] 100 %
tr_preload (1.5 GB)     [================================================================================================] 100 %
tr_mi (348 kB)          [================================================================================================] 100 %
tr_product (733 MB)     [================================================================================================] 100 %
tr_region (348 kB)      [================================================================================================] 100 %
tr_theme (348 kB)       [================================================================================================] 100 %
vbmeta (12 kB)          [================================================================================================] 100 %
vbmeta_system (4.1 kB)  [================================================================================================] 100 %
vbmeta_vendor (4.1 kB)  [================================================================================================] 100 %
vendor (893 MB)         [================================================================================================] 100 %
vendor_boot (67 MB)     [================================================================================================] 100 %
 

 

~/payload-dumper-go$ ls
chromeos_update_engine  extracted_20250809_213356  go.sum   main.go            payload.go  README.md
Dockerfile              go.mod                     LICENSE  payload-dumper-go  reader.go   update_metadata.proto
 

Sip, berhasil diekstrak 👍
Folder output-nya itu yang bernama:

extracted_20250809_213356

Lanjut begini ya:

cd ~/payload-dumper-go/extracted_20250809_213356
ls -lh | grep -E 'boot|vendor_boot|init_boot'

Harusnya ada boot.img (± puluhan MB). Lanjut:

# simpan cadangan
cp boot.img boot.img.orig

# kirim ke HP untuk dipatch di KernelSU Manager
adb push boot.img /sdcard/Download/

Di HP: buka KernelSU Manager → Install → Patch boot image → pilih Download/boot.img.
Hasilnya biasanya boot-patched.img di folder Download.

Balik ke PC dan flash:

# tarik hasil patch dari HP
adb pull /sdcard/Download/boot-patched*.img .

# cek slot aktif lalu flash ke slot tsb
adb reboot bootloader
fastboot getvar current-slot    # catat 'a' atau 'b'
fastboot flash boot_a boot-patched.img   # jika slot aktif 'a'
# atau: fastboot flash boot_b boot-patched.img  # jika 'b'
fastboot reboot

Buka KernelSU Manager → status harus Installed.
Kalau butuh, saya bantu cek isi folder extracted_... untuk memastikan file yang mana yang dipakai.

 

 :~/payload-dumper-go/extracted_20250809_213356$ ls
boot.img  lk.img      pi_img.img         spmfw.img       tee.img         tr_mi.img       tr_theme.img       vendor_boot.img
dpm.img   logo.img    preloader_raw.img  sspm.img        tkv.img         tr_preload.img  vbmeta.img         vendor.img
dtbo.img  mcupm.img   product.img        system_ext.img  tr_carrier.img  tr_product.img  vbmeta_system.img
gz.img    md1img.img  scp.img            system.img      tr_company.img  tr_region.img   vbmeta_vendor.img


~/payload-dumper-go/extracted_20250809_213356$ ls -lh | grep -E 'boot|vendor_boot|init_boot'
-rwxr-xr-x 1 dhwan dhwan   0 Aug  9 21:33 boot.img
-rwxr-xr-x 1 dhwan dhwan 64M Aug  9 21:33 vendor_boot.img

 

Update OS Itel P55 5G

Update OTA dulu pernah sekali.

sekarang lanjut 

 v53 ke v80 ke v87 ke v124 ke 437 ke 612

Tuesday, 5 August 2025

convert pdf ke html

 

Baik, Guru. Convert PDF ke HTML bisa dilakukan supaya kontennya tampil sebagai halaman web biasa (DOM), sehingga Easy Screenshot bisa dipakai dengan anotasi.
Berikut beberapa cara:


1. Pakai pdftohtml (Terminal Ubuntu)

Ubuntu sudah menyediakan paket poppler-utils yang berisi pdftohtml.

Instalasi

sudo apt update
sudo apt install poppler-utils

Convert PDF ke HTML

pdftohtml -c -s input.pdf output.html

Keterangan:

  • -c → menjaga layout (font & gambar tetap posisi mirip)

  • -s → semua halaman digabung menjadi satu HTML panjang

Hasil:

  • output.html → bisa langsung dibuka di Firefox

  • Setelah dibuka, Easy Screenshot akan bisa dipakai dengan anotasi


2. Gunakan LibreOffice (tanpa terminal)

  1. Buka PDF di LibreOffice Draw (biasanya sudah terinstal di Ubuntu).

  2. Pilih File → Export → HTML.

  3. Buka hasilnya di Firefox.


3. Konversi Online (lebih cepat tapi butuh internet)

Misalnya:

Setelah di-convert, buka file .html di Firefox → langsung bisa dipakai Easy Screenshot.


Mau saya buatkan perintah lengkap 1 baris (download + convert + buka di Firefox langsung)?

Atau kamu mau cara offline yang langsung batch (banyak PDF sekaligus)?

Monday, 4 August 2025

download short youtuber dengan yt-dlp

 yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" \
--merge-output-format mp4 \
-o "video.mp4" \
"https://youtube.com/shorts/mVA5mGUeBlA?si=Mkc8WDm2yzuEWEbV"

ffmpeg -i video.mp4 -vf "scale=-2:720" -c:v libx264 -crf 28 -preset fast -c:a aac -b:a 128k video_wa.mp4