OS: PRAKTIKUM — Android x86 Build Lab: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
Created page with " PRAKTIKUM 9 — Android x86 Build Lab Membangun, Menjalankan, dan Mendiagnosa Android sebagai Sistem Operasi Tujuan Praktikum Praktikum ini dirancang untuk membawa mahasi..."
 
No edit summary
 
Line 1: Line 1:
==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===
 
PRAKTIKUM 9 — Android x86 Build Lab
Membangun, Menjalankan, dan Mendiagnosa Android sebagai Sistem Operasi
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:
Dalam praktikum ini:
Menggunakan Ubuntu 24.04 sebagai build host
* Menggunakan Ubuntu 24.04 sebagai build host
Mengaplikasikan konsep:
* Mengaplikasikan konsep:
Kernel
** Kernel
User space
** User space
Runtime
** Runtime
Filesystem
** Filesystem
Boot process
** Boot process
Bersifat reproducible dan non-destruktif (berbasis VM)
* Bersifat reproducible dan non-destruktif (berbasis VM)
Android x86 diperlakukan setara dengan Ubuntu Server dan OpenWRT sebagai engineering artifact, bukan sebagai consumer product.
Android x86 diperlakukan setara dengan Ubuntu Server dan OpenWRT sebagai engineering artifact, bukan sebagai consumer product.
Spesifikasi Minimum Lingkungan Build
 
==Spesifikasi Minimum Lingkungan Build==
Disarankan menggunakan VM Ubuntu Server 24.04:
Disarankan menggunakan VM Ubuntu Server 24.04:
CPU: 4 core (minimal 2)
* CPU: 4 core (minimal 2)
RAM: 8–16 GB (minimal 8 GB)
* RAM: 8–16 GB (minimal 8 GB)
Disk: ≥ 150 GB (VDI, dynamically allocated)
* Disk: ≥ 150 GB (VDI, dynamically allocated)
Network: NAT (Internet access)
* Network: NAT (Internet access)
OS: Ubuntu Server 24.04 LTS
* OS: Ubuntu Server 24.04 LTS
Catatan penting:
Catatan penting:
Build Android berat dan lama. Ini bukan kelemahan, tetapi pengalaman nyata OS engineering skala industri.
Build Android berat dan lama. Ini bukan kelemahan, tetapi pengalaman nyata OS engineering skala industri.
Build Android x86 dari Source
 
==Build Android x86 dari Source==
Instalasi Dependency Build (Ubuntu 24.04)
Instalasi Dependency Build (Ubuntu 24.04)
Pastikan sistem up-to-date:
Pastikan sistem up-to-date:
sudo apt update
sudo apt update
sudo apt upgrade -y
sudo apt upgrade -y
 
Install dependency utama AOSP:
Install dependency utama AOSP:
sudo apt install -y \
sudo apt install -y \
  git-core gnupg flex bison build-essential \
  git-core gnupg flex bison build-essential \
  zip curl zlib1g-dev gcc-multilib g++-multilib \
  zip curl zlib1g-dev gcc-multilib g++-multilib \
  libc6-dev-i386 libncurses5-dev x11proto-core-dev \
  libc6-dev-i386 libncurses5-dev x11proto-core-dev \
  libx11-dev libgl1-mesa-dev libxml2-utils \
  libx11-dev libgl1-mesa-dev libxml2-utils \
  xsltproc unzip fontconfig \
  xsltproc unzip fontconfig \
  openjdk-17-jdk repo
  openjdk-17-jdk repo
Verifikasi tool penting:
Verifikasi tool penting:
java -version
java -version
repo --version
repo --version
gcc --version
gcc --version
 
Insight OS:
Insight OS:
Build Android sepenuhnya bergantung pada toolchain GNU/Linux, menegaskan Android sebagai Linux-based OS.
Build Android sepenuhnya bergantung pada toolchain GNU/Linux, menegaskan Android sebagai Linux-based OS.
Mengambil Source Code Android x86
 
==Mengambil Source Code Android x86==
Buat workspace:
Buat workspace:
mkdir -p ~/android-x86
mkdir -p ~/android-x86
cd ~/android-x86
cd ~/android-x86
 
Inisialisasi repo Android x86:
Inisialisasi repo Android x86:
repo init -u https://github.com/android-x86/manifest.git
repo init -u https://github.com/android-x86/manifest.git
repo sync -j$(nproc)
repo sync -j$(nproc)
Proses ini lama dan menghasilkan ribuan file.
Proses ini lama dan menghasilkan ribuan file.
Ini normal dan mencerminkan kompleksitas OS modern.
Ini normal dan mencerminkan kompleksitas OS modern.


Menyiapkan Environment Build
==Menyiapkan Environment Build==
Aktifkan environment build:
Aktifkan environment build:
source build/envsetup.sh
source build/envsetup.sh
 
Pilih target build:
Pilih target build:
lunch android_x86_64-userdebug
lunch android_x86_64-userdebug
 
Penjelasan:
Penjelasan:
x86_64 → arsitektur PC / VM
* x86_64 → arsitektur PC / VM
userdebug → mode ideal untuk pembelajaran & debugging
* userdebug → mode ideal untuk pembelajaran & debugging
Proses Build Android x86
 
==Proses Build Android x86==
 
Mulai proses build:
Mulai proses build:
make -j$(nproc)
make -j$(nproc)
Waktu build bisa 1–3 jam tergantung resource.
Waktu build bisa 1–3 jam tergantung resource.
Hasil build berada di:
Hasil build berada di:
out/target/product/x86_64/
out/target/product/x86_64/
 
File penting:
File penting:
kernel
* kernel
system.img
* system.img
ramdisk.img
* ramdisk.img
android_x86_64.iso
* android_x86_64.iso
 
Analogi akademik:
Analogi akademik:
Ini setara dengan kernel + initramfs + root filesystem pada Linux/OpenWRT.
Ini setara dengan kernel + initramfs + root filesystem pada Linux/OpenWRT.


Boot Android x86 di VirtualBox
==Boot Android x86 di VirtualBox==
Pembuatan VM Android x86
===Pembuatan VM Android x86===
Gunakan VirtualBox.
Gunakan VirtualBox.
Konfigurasi VM:
Konfigurasi VM:
Name: Android-x86
* Name: Android-x86
Type: Linux
* Type: Linux
Version: Other Linux (64-bit)
* Version: Other Linux (64-bit)
RAM: 4–8 GB
* RAM: 4–8 GB
CPU: 2–4 core
* CPU: 2–4 core
Attach ISO:
* Attach ISO:
out/target/product/x86_64/android_x86_64.iso
out/target/product/x86_64/android_x86_64.iso
Instalasi Android x86
 
Boot VM
===Instalasi Android x86===
Pilih: Install Android-x86 to harddisk
* Boot VM
Pilih disk virtual
* Pilih: Install Android-x86 to harddisk
Filesystem: ext4
* Pilih disk virtual
Install GRUB bootloader
* Filesystem: ext4
Reboot VM
* Install GRUB bootloader
* Reboot VM
Android kini berfungsi sebagai sistem operasi mandiri.
Android kini berfungsi sebagai sistem operasi mandiri.
Verifikasi Android sebagai OS
 
==Verifikasi Android sebagai OS==
 
Masuk ke shell Android:
Masuk ke shell Android:
adb shell
adb shell
 
Cek kernel:
Cek kernel:
uname -a
uname -a
 
Cek proses:
Cek proses:
ps -A | head
ps -A | head
 
Cek filesystem:
Cek filesystem:
mount | head
mount | head
 
Observasi penting:
Observasi penting:
Android menggunakan Linux kernel, process isolation, dan filesystem hierarki nyata.
Android menggunakan Linux kernel, process isolation, dan filesystem hierarki nyata.
Debugging Build Error (Bagian Terpenting)
 
Filosofi Debugging OS
==Debugging Build Error (Bagian Terpenting)==
===Filosofi Debugging OS===
Debugging bukan tanda gagal, tetapi inti pembelajaran OS engineering. Pendekatan yang benar:
Debugging bukan tanda gagal, tetapi inti pembelajaran OS engineering. Pendekatan yang benar:
Baca error, mengerti bahasa Inggris.
* Baca error, mengerti bahasa Inggris.
Identifikasi lapisan (toolchain / kernel / user space)
* Identifikasi lapisan (toolchain / kernel / user space)
Cari konteks, bukan copy-paste solusi
* Cari konteks, bukan copy-paste solusi
Error Umum & Solusi
 
===Error Umum & Solusi===
Error Java Version
Error Java Version
 
ERROR: Java version not supported
ERROR: Java version not supported
Solusi:
Solusi:
sudo update-alternatives --config java
sudo update-alternatives --config java
Pastikan OpenJDK 17 aktif.
Pastikan OpenJDK 17 aktif.
Error Disk Penuh


No space left on device
===Error Disk Penuh===
No space left on device
Cek:
Cek:
df -h
df -h
 
Solusi:
Solusi:
Tambah disk VM
* Tambah disk VM
Hapus build lama:
* Hapus build lama:
make clean
make clean
Error Build Terhenti di Tengah
 
===Error Build Terhenti di Tengah===
Solusi aman:
Solusi aman:
make clean
make clean
make -j$(nproc)
make -j$(nproc)
Build Android bersifat deterministik, clean build sering menyelesaikan masalah.
Build Android bersifat deterministik, clean build sering menyelesaikan masalah.


Membaca Log Build
===Membaca Log Build===
Contoh:
Contoh:
tail -n 50 out/build.log
tail -n 50 out/build.log
 
Cari:
Cari:
error:
error:
FAILED:
FAILED:
ninja:
ninja:
 
Skill penting:
Skill penting:
Mahasiswa belajar membaca log ribuan baris, bukan menghindarinya.
Mahasiswa belajar membaca log ribuan baris, bukan menghindarinya.
Mini Eksperimen (Fun & Menantang)
 
==Mini Eksperimen (Fun & Menantang)==
Beberapa eksperimen ringan:
Beberapa eksperimen ringan:
Matikan zygote:
Matikan zygote:
stop zygote
→ UI mati, kernel tetap hidup


stop zygote
→ UI mati, kernel tetap hidup
Cek memory:
Cek memory:
 
free -h
free -h


Bandingkan dengan Ubuntu:
Bandingkan dengan Ubuntu:
ps aux


Insight:
Kernel sama, user space design menentukan karakter OS.


ps aux
==Refleksi Akademik (OBE-Oriented)==
Insight:
Kernel sama, user space design menentukan karakter OS.
Refleksi Akademik (OBE-Oriented)
Setelah praktikum ini, mahasiswa mampu secara nyata:
Setelah praktikum ini, mahasiswa mampu secara nyata:
✅ Membangun Android OS dari source
* ✅ Membangun Android OS dari source
✅ Menjalankan Android sebagai OS di VM
* ✅ Menjalankan Android sebagai OS di VM
✅ Mengaitkan Android dengan konsep kernel Linux
* ✅ Mengaitkan Android dengan konsep kernel Linux
✅ Melakukan debugging OS skala besar
* ✅ Melakukan debugging OS skala besar
✅ Berpikir sebagai system builder, bukan user
* ✅ Berpikir sebagai system builder, bukan user


Penutup
==Penutup==
Praktikum ini menandai transisi penting:
Praktikum ini menandai transisi penting:
dari pengguna Android → engineer sistem operasi Android.
* dari pengguna Android → engineer sistem operasi Android.
Android tidak lagi misterius atau black box.
* Android tidak lagi misterius atau black box.
Ia adalah sistem operasi Linux modern yang:
* Ia adalah sistem operasi Linux modern yang:
Bisa dibangun
** Bisa dibangun
Bisa dianalisis
** Bisa dianalisis
Bisa dimodifikasi
** Bisa dimodifikasi
Selamat — Anda telah membangun sistem operasi modern dengan tangan sendiri.
Selamat — Anda telah membangun sistem operasi modern dengan tangan sendiri.



Latest revision as of 03:25, 15 February 2026

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