OS: PRAKTIKUM — Android x86 Build Lab

From OnnoWiki
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