OS: PRAKTIKUM — Android x86 Build Lab

From OnnoWiki
Revision as of 10:25, 15 February 2026 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.


Pranala Menarik