Telepon, walkie-talkie, chat, dan SOS antar HP Android tanpa internet dan tanpa sinyal.
Translation pending
SocialJava · ShellGitHub @budijoiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Calls, walkie-talkie, chat and SOS between Android phones with no internet or cell signal, over Wi-Fi Direct. / Telepon, walkie-talkie, chat, dan SOS antar HP Android tanpa internet dan tanpa sinyal, lewat Wi-Fi Direct.
Taken from the repository README
Loading the full README.
Read the full README ↗Saat bencana datang, BTS sering mati dan internet hilang tepat ketika orang paling membutuhkannya. Hal yang sama terjadi di gunung, hutan, atau laut. Saling Jaga menghubungkan HP secara langsung lewat radio Wi‑Fi di dalam HP (Wi‑Fi Direct). Tidak butuh kartu SIM, router, server, atau Google Play Services. Orang dalam satu rombongan tetap bisa bicara, saling tahu kondisi masing-masing, dan menemukan satu sama lain.
Gratis untuk warga. Kebutuhan tim dan institusi seperti posko, SAR, sekolah, dan perusahaan menjadi dasar model bisnisnya (lihat Model keberlanjutan).
Status: v0.11.0, sudah diuji di lapangan dengan beberapa HP Android dan fitur utamanya berjalan. Protokolnya juga teruji otomatis. Fitur jembatan masih percobaan, dan laporan dari merek HP lain tetap sangat dibutuhkan.
| Pembuka | Layar awal | Isi nama pertama kali |
|---|---|---|
| Cari perangkat | Grup & chat | Mode telepon |
|---|---|---|
| Pilih status | Tulis pengumuman | Kirim SOS / SOS + SMS |
|---|---|---|
| SOS masuk | SOS sendiri & anggota terputus | Kompas |
|---|---|---|
| Menu profil | Kontak darurat SMS | Kirim foto |
|---|---|---|
| Kirim video | Peta offline | Jadi jembatan (multihop) |
|---|---|---|
Screenshot dirender otomatis dari kode, bukan mockup (lihat Pengujian). Nama dan pesan di dalamnya hanya contoh. Peta di screenshot digambar oleh tes karena tes berjalan tanpa internet; di HP yang tampil adalah peta OpenStreetMap asli.
Komunikasi
Keselamatan
Kenyamanan
Saling Jaga belum ada di Play Store, jadi dipasang langsung dari file APK (sekitar 200 KB, Android 6.0 ke atas). Pasang sebelum bencana atau sebelum berangkat, selagi masih ada internet.
▶ Video cara instal 40 detik: unduh MP4 atau putar di situs
saling-jaga.apk dari notifikasi unduhan atau aplikasi File.Untuk anggota rombongan yang tidak punya internet, kirim file APK dari HP yang sudah memasangnya lewat Quick Share / Nearby Share, Bluetooth, atau kabel data.
Update ke versi baru: cukup unduh dan pasang APK terbaru di atas versi lama, tanpa menghapusnya. Nama, foto, dan kontak darurat tetap tersimpan. Pengecualian satu kali: APK yang diunduh sebelum kunci rilis permanen dipakai (v0.6.0 awal) perlu dihapus dulu, karena ditandatangani dengan kunci lain.
Android memperingatkan setiap APK yang tidak berasal dari Play Store, termasuk aplikasi yang aman. Cara memastikan APK Saling Jaga bisa dipercaya:
Kodenya terbuka. Semua kode ada di repositori ini dan bisa diperiksa siapa pun. Aplikasinya kecil (sekitar 200 KB) dan tidak memakai library pihak ketiga, jadi tidak ada kode tersembunyi dari SDK iklan atau analitik.
APK dibangun oleh GitHub, bukan di laptop pribadi. File di halaman Releases dibuat otomatis oleh GitHub Actions dari kode publik. Setiap rilis mencantumkan commit asal dan link ke log build-nya.
Cek keaslian file. Setiap rilis mencantumkan SHA-256 APK dan sidik jari sertifikat penandatangan. File yang diunduh dari sumber lain (grup WhatsApp, Bluetooth) bisa dicocokkan dengan angka ini. File juga bisa dipindai gratis di VirusTotal.
Tidak mengirim data ke internet. Tidak ada server, akun, iklan, atau pelacak. Data hanya dikirim langsung ke HP anggota grup lewat Wi‑Fi Direct. Satu-satunya akses internet adalah saat kamu sendiri menekan Unduh peta sekitar: aplikasi mengambil gambar peta dari tile.openstreetmap.org, dan tidak ada data pribadi yang ikut terkirim.
Izin seperlunya:
| Izin | Untuk apa |
|---|---|
| Lokasi / Perangkat sekitar | Wajib dari Android untuk mencari HP lewat Wi‑Fi Direct, dan untuk kompas serta jarak SOS |
| Mikrofon | Walkie-talkie dan mode telepon, hanya saat tombol ditahan atau telepon aktif |
| Notifikasi | SOS dan pesan saat layar mati |
| Internet / jaringan | Membuka koneksi TCP ke HP lain di grup, dan mengunduh gambar peta OpenStreetMap saat kamu menekan Unduh peta. Tidak ada server lain |
| Getar, wake lock, layanan latar | Alarm SOS dan tetap tersambung saat layar mati |
Saling Jaga tidak meminta akses kontak, SMS, file/galeri penuh, kamera, atau log panggilan. Foto dan video dipilih lewat pemilih bawaan Android atau direkam lewat aplikasi kamera HP, dan SOS + SMS memakai aplikasi SMS Anda sendiri.
Jangkauan Wi‑Fi Direct biasanya 50–100 m di area terbuka dan lebih pendek di dalam gedung. Kunci GPS pertama tanpa internet bisa butuh 1–3 menit di tempat terbuka.
HP anggota ──┐
HP anggota ──┼── Wi‑Fi Direct (WPA2) ── HP pemilik grup ── meneruskan ke semua
HP anggota ──┘ (server TCP di 192.168.49.1:8988)
WifiP2pManager bawaan Android, tanpa library pihak ketiga.tipe · pengirim · panjang · isi. Tipenya HELLO (nama + foto), TEXT, IMAGE (JPEG), BRIDGE dan JOIN_INFO (multihop), VIDEO_CHUNK (potongan klip 32 KB), AUDIO (PCM 16 kHz mono, potongan 20 ms), TALK_START/END, PRESENCE (status, baterai, lokasi), ANNOUNCE, LEAVE, PING, dan REJECT.PING tiap 3 detik. Koneksi yang diam lebih dari 10 detik dianggap putus.Yang sudah diterapkan:
Belum ada (direncanakan):
SJ-XXXX-XXXX + QR untuk pendataan, dan label "Posko terverifikasi" untuk pengumuman resmi.play/).Aplikasi ini sengaja dibangun tanpa Gradle/AGP dan tanpa dependensi. build.sh memilih salah satu dari dua toolchain:
Android SDK (ANDROID_HOME berisi build-tools dan platforms/android-36), seperti di GitHub Actions. Memakai aapt2 + d8 dan menghasilkan build rilis. Dengan BUNDLE=1 BUNDLETOOL=/path/bundletool.jar juga membuat App Bundle (build/saling-jaga.aab) untuk Google Play.
Paket Ubuntu/Debian untuk build uji cepat di komputer:
sudo apt-get install android-sdk-platform-23 aapt dalvik-exchange apksigner zipalign
./build.sh # hasil: build/saling-jaga-debug.apk
aapt versi Debian tidak mengenal atribut manifest yang lebih baru dari Android 6, jadi build ini menargetkan Android 13 dan khusus untuk uji coba.
Kodenya ditulis dalam Java 8 dengan UI yang dibangun langsung di kode (tanpa XML layout dan tanpa AndroidX). Java selalu dikompilasi terhadap API 23 (minSdk), sedangkan targetSdkVersion adalah 36 sesuai syarat Google Play. API yang lebih baru (notification channel, tombol kembali Android 16, jenis foreground service) dipanggil lewat reflection.
Panduan menerbitkan ke Google Play, teks listing, ikon, feature graphic, dan screenshot ada di play/.
./build.sh
cd tools/screenshot-tests && gradle test
ClipsTest menguji pemotongan dan penyusunan ulang klip video, termasuk potongan rusak, duplikat, dan batas memori.TilesTest menguji proyeksi peta (cocok dengan petak OSM), batas unduhan sesuai aturan OSM, dan penghitungan petak tersimpan.EmergencySmsTest menguji pembersihan nomor kontak darurat dan isi SMS SOS.HubTest menjalankan tiga hub di atas socket sungguhan. Yang diuji: relay pesan, teks, dan suara; pengiriman ulang SOS ke anggota baru; penolakan penyamaran; batas ukuran pesan; penolakan nama ganda; dan deteksi anggota keluar. Tes jembatan menggabungkan dua grup lewat satu HP jembatan, lalu memeriksa chat, suara, dan status antar-lompatan, penolakan penyamaran di balik jembatan, serta anggota yang keluar di kedua sisi.ScreenshotTest merender layar aplikasi dengan Robolectric (native graphics) ke tools/screenshot-tests/out/. Gambar di README berasal dari tes ini.GitHub Actions:
build.yml menjalankan build dan kedua tes di setiap push dan PR, lalu mengunggah APK dan screenshot sebagai artefak.release.yml membangun APK di setiap push ke main dan menaruhnya di GitHub Release v<versionName> sebagai saling-jaga.apk. Jika secret SIGNING_KEYSTORE_B64 (keystore dalam base64), SIGNING_KS_PASS, SIGNING_KEY_ALIAS, dan SIGNING_KEY_PASS diisi, APK ditandatangani dengan kunci rilis. versionCode diisi otomatis dari nomor run (+100) supaya setiap rilis terpasang sebagai update.pages.yml menerbitkan folder docs/ ke GitHub Pages (situs web proyek).app/src/main/
AndroidManifest.xml
java/com/salingjaga/app/
MainActivity.java UI, Wi‑Fi Direct, mode bencana, kompas
Hub.java grup: server/klien, relay, anggota, anti-penyamaran
Link.java satu koneksi TCP: thread baca/tulis, ping, batas ukuran
Frame.java tipe pesan dan batas ukurannya
Presence.java status, baterai, lokasi
Voice.java rekam & putar suara (AudioRecord/AudioTrack)
RadarView.java radar kompas
Avatars.java foto profil bulat / inisial
Photos.java kompres & decode foto yang dikirim di grup
Tiles.java peta offline: hitung, unduh, dan simpan petak OpenStreetMap
MapView.java peta yang bisa digeser/zoom dengan titik anggota
Bridge.java multihop: sambungan Wi‑Fi ke grup lain lewat IPv6 link-local
Clips.java potong & susun ulang klip video yang dikirim di grup
CaptureProvider.java file tujuan foto/video kamera (tanpa izin kamera)
Alerts.java notifikasi sistem
EmergencySms.java SOS lewat SMS: nomor kontak dan isi pesan
KeepAliveService.java tetap tersambung saat layar mati
res/ ikon, logo, splash, ikon vektor
build.sh build APK tanpa Gradle
tools/screenshot-tests/ tes protokol + render screenshot
docs/ situs web (index.html), logo, splash, screenshot
Sudah mencoba? Laporan dari HP asli adalah hal yang paling dibutuhkan sekarang.
Jangan tulis nomor telepon atau data pribadi lain di laporan, karena laporan bisa dilihat publik.
Website memakai statistik pengunjung GoatCounter bila diaktifkan: tanpa cookie dan tanpa data pribadi, hanya jumlah kunjungan dan klik tombol unduh. Aplikasinya sendiri tetap tanpa pelacak.
Saling Jaga memakai model open-core:
Copyright (C) 2026 Chalid Ade Rahman