OS: PRAKTIKUM — Android x86 Build Lab
Tujuan Praktikum
Praktikum ini dirancang untuk membawa mahasiswa naik level dari pemahaman konseptual ke kemampuan engineering nyata. Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
- Membangun Android x86 dari source code
- Menjalankan Android sebagai OS di VirtualBox
- Memahami relasi kernel – user space – runtime Android
- Menganalisis dan memperbaiki error build secara sistematis
Filosofi utama:
Jika Anda bisa membangun Android OS sendiri, maka Anda memahami sistem operasi modern secara utuh.
Persiapan Lingkungan Praktikum
Konteks Akademik Praktikum
Dalam praktikum ini:
- Menggunakan Ubuntu 24.04 sebagai build host
- Mengaplikasikan konsep:
- Kernel
- User space
- Runtime
- Filesystem
- Boot process
- Bersifat reproducible dan non-destruktif (berbasis VM)
Android x86 diperlakukan setara dengan Ubuntu Server dan OpenWRT sebagai engineering artifact, bukan sebagai consumer product.
Spesifikasi Minimum Lingkungan Build
Disarankan menggunakan VM Ubuntu Server 24.04:
- CPU: 4 core (minimal 2)
- RAM: 8–16 GB (minimal 8 GB)
- Disk: ≥ 150 GB (VDI, dynamically allocated)
- Network: NAT (Internet access)
- OS: Ubuntu Server 24.04 LTS
Catatan penting:
Build Android berat dan lama. Ini bukan kelemahan, tetapi pengalaman nyata OS engineering skala industri.
Build Android x86 dari Source
Instalasi Dependency Build (Ubuntu 24.04)
Pastikan sistem up-to-date:
sudo apt update sudo apt upgrade -y
Install dependency utama AOSP:
sudo apt install -y \ git-core gnupg flex bison build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib \ libc6-dev-i386 libncurses5-dev x11proto-core-dev \ libx11-dev libgl1-mesa-dev libxml2-utils \ xsltproc unzip fontconfig \ openjdk-17-jdk repo
Verifikasi tool penting:
java -version repo --version gcc --version
Insight OS:
Build Android sepenuhnya bergantung pada toolchain GNU/Linux, menegaskan Android sebagai Linux-based OS.
Mengambil Source Code Android x86
Buat workspace:
mkdir -p ~/android-x86 cd ~/android-x86
Inisialisasi repo Android x86:
repo init -u https://github.com/android-x86/manifest.git repo sync -j$(nproc)
Proses ini lama dan menghasilkan ribuan file. Ini normal dan mencerminkan kompleksitas OS modern.
Menyiapkan Environment Build
Aktifkan environment build:
source build/envsetup.sh
Pilih target build:
lunch android_x86_64-userdebug
Penjelasan:
- x86_64 → arsitektur PC / VM
- userdebug → mode ideal untuk pembelajaran & debugging
Proses Build Android x86
Mulai proses build:
make -j$(nproc)
Waktu build bisa 1–3 jam tergantung resource.
Hasil build berada di:
out/target/product/x86_64/
File penting:
- kernel
- system.img
- ramdisk.img
- android_x86_64.iso
Analogi akademik:
Ini setara dengan kernel + initramfs + root filesystem pada Linux/OpenWRT.
Boot Android x86 di VirtualBox
Pembuatan VM Android x86
Gunakan VirtualBox.
Konfigurasi VM:
- Name: Android-x86
- Type: Linux
- Version: Other Linux (64-bit)
- RAM: 4–8 GB
- CPU: 2–4 core
- Attach ISO:
out/target/product/x86_64/android_x86_64.iso
Instalasi Android x86
- Boot VM
- Pilih: Install Android-x86 to harddisk
- Pilih disk virtual
- Filesystem: ext4
- Install GRUB bootloader
- Reboot VM
Android kini berfungsi sebagai sistem operasi mandiri.
Verifikasi Android sebagai OS
Masuk ke shell Android:
adb shell
Cek kernel:
uname -a
Cek proses:
ps -A | head
Cek filesystem:
mount | head
Observasi penting:
Android menggunakan Linux kernel, process isolation, dan filesystem hierarki nyata.
Debugging Build Error (Bagian Terpenting)
Filosofi Debugging OS
Debugging bukan tanda gagal, tetapi inti pembelajaran OS engineering. Pendekatan yang benar:
- Baca error, mengerti bahasa Inggris.
- Identifikasi lapisan (toolchain / kernel / user space)
- Cari konteks, bukan copy-paste solusi
Error Umum & Solusi
Error Java Version
ERROR: Java version not supported
Solusi:
sudo update-alternatives --config java
Pastikan OpenJDK 17 aktif.
Error Disk Penuh
No space left on device
Cek:
df -h
Solusi:
- Tambah disk VM
- Hapus build lama:
make clean
Error Build Terhenti di Tengah
Solusi aman:
make clean make -j$(nproc)
Build Android bersifat deterministik, clean build sering menyelesaikan masalah.
Membaca Log Build
Contoh:
tail -n 50 out/build.log
Cari:
error: FAILED: ninja:
Skill penting:
Mahasiswa belajar membaca log ribuan baris, bukan menghindarinya.
Mini Eksperimen (Fun & Menantang)
Beberapa eksperimen ringan:
Matikan zygote:
stop zygote → UI mati, kernel tetap hidup
Cek memory:
free -h
Bandingkan dengan Ubuntu:
ps aux
Insight:
Kernel sama, user space design menentukan karakter OS.
Refleksi Akademik (OBE-Oriented)
Setelah praktikum ini, mahasiswa mampu secara nyata:
- ✅ Membangun Android OS dari source
- ✅ Menjalankan Android sebagai OS di VM
- ✅ Mengaitkan Android dengan konsep kernel Linux
- ✅ Melakukan debugging OS skala besar
- ✅ Berpikir sebagai system builder, bukan user
Penutup
Praktikum ini menandai transisi penting:
- dari pengguna Android → engineer sistem operasi Android.
- Android tidak lagi misterius atau black box.
- Ia adalah sistem operasi Linux modern yang:
- Bisa dibangun
- Bisa dianalisis
- Bisa dimodifikasi
Selamat — Anda telah membangun sistem operasi modern dengan tangan sendiri.