coinpayu

Rootfs Linux Debian on Android Smart TV: Installing & Configure

Mengatur lingkungan chroot Debian di perangkat Android memungkinkan Anda untuk mengakses dan mengkonfigurasi sistem perangkat Android dengan cara yang


 Baik, Setalah saya utak atik Smart TV yang ber Oprasi Sitem Android ini memungkinkan saya ber-experiment dengan "Bagaimana saya melakukan packaging atau menginstall paket-paket linux di Android Smart TV?", sejauh ini saya sudah exprorer terhadap pertanyaan yang ada di pikiran saya mengenai hal ini. ya, mungkin anda mengira saya akan melakukan installasi dengan termux? oh, tentu tidak dikarnakan Smart TV yang saya gunakan berada di jarak jauh dengan lokasi saya  (Remote) . Saya hanya bisa mengakses nya lewat remote ADB(Android Debug Bridge). tentu hal ini menjadi tangtangan saya untuk menginstall dan mengkonfigurasi Smart TV secara jarak jauh maupun lokal. walau saya sudah melakukan installasi termux di Smart TV lewat Shell Android nya tetapi masih memiliki banyak problematik di karnakan PM install saja tidak cukup karena keterbatasan di Smart TV yang saya gunakan.

 

Pertama saya mempersiapkan bahan terlebih dahulu 

Bahan Bahan Dan Persiapan

  • Perangkat Android Smart TV (lokal maupun jarak jauh)
  • Perangkat Linux (Untuk membangun Rootfs Linux)
  • Mental dan Kopi Kapal API

Membangun Rootfs

Di Perangkat linux saya, saya menggunakan Distro Ubuntu untuk melakukan pembangunan Rootfs . tetapi rootfs yang saya gunakan yaitu DEBIAN ARM64 di karnakan Perangkat Smart TV saya menggunakan ARM.  

  • 1.Unduh Root Filesystem Debian:

    • Anda dapat mengunduh root filesystem Debian yang sudah dikompresi (contoh: debian-rootfs.tar.gz) atau menggunakan debootstrap di komputer dan mentransfernya ke perangkat Android.
    • Misalnya, menggunakan komputer untuk mengunduh dan mempersiapkan root filesystem Debian:
      sh
      sudo debootstrap --arch=arm64 --foreign buster ~/debian-rootfs http://deb.debian.org/debian cd ~/debian-rootfs sudo tar -czvf ../debian-rootfs.tar.gz .
    • Transfer debian-rootfs.tar.gz ke perangkat Android menggunakan ADB:
      sh
      adb push ~/debian-rootfs.tar.gz /sdcard/  

  • 2.Ekstrak Root Filesystem di Perangkat Android:

    • Masuk ke shell Android menggunakan ADB:
      sh
      adb shell
    • Buat direktori untuk Debian chroot (jika belum ada):
      sh
      mkdir -p /data/local/debian-arm64-chroot
    • Pindah ke direktori tujuan:
      sh
      cd /data/local/debian-arm64-chroot
    • Ekstrak root filesystem Debian:
      sh
      tar -xzvf /sdcard/debian-rootfs.tar.gz
  •  

  • 3.Selesaikan Setup debootstrap di Perangkat Android:

    • Setelah root filesystem diekstrak, selesaikan proses debootstrap:
      sh
      ./debootstrap/debootstrap --second-stage
  • 4.Masuk ke Lingkungan Chroot:

    • Gunakan busybox untuk masuk ke lingkungan chroot:
      sh
      busybox chroot /data/local/debian-arm64-chroot /bin/bash
  •  

    Sekarang Anda seharusnya berada dalam lingkungan chroot Debian di perangkat Android Anda. Anda dapat menginstal paket tambahan atau melakukan konfigurasi lain sesuai kebutuhan dalam lingkungan chroot tersebut.

     

  • shell
    I have no name!@localhost:/#
  •  

     Konfigurasi Rootfs

     

  • 1.Mount Bind untuk Direktori Penting:

    • Di luar lingkungan chroot, di shell Android utama, mount bind beberapa direktori penting ke dalam chroot untuk memastikan fungsi dasar seperti manajemen paket berfungsi dengan baik.
    sh
    mount -o bind /dev /data/local/debian-arm64-chroot/dev mount -t proc /proc /data/local/debian-arm64-chroot/proc mount -t sysfs /sys /data/local/debian-arm64-chroot/sys
  • 2.Memastikan Environment Path Terkonfigurasi:

    • Kadang-kadang, perlu untuk menetapkan PATH secara manual untuk mengakses perintah yang terdapat di dalam chroot.
    sh
    export PATH=/bin:/usr/bin:/sbin:/usr/sbin
  • 3.Lakukan update:

    • Setelah langkah-langkah di atas dilakukan, coba lagi untuk menjalankan apt update di dalam chroot.
    sh
    I have no name!@localhost:/# apt update -y Err:1 http://deb.debian.org/debian buster InRelease Could not resolve 'deb.debian.org' Reading package lists... Done Building dependency tree... Done All packages are up to date. W: No sandbox user '_apt' on the system, can not drop privileges W: Failed to fetch http://deb.debian.org/debian/dists/buster/InRelease Could not resolve 'deb.debian.org' W: Some index files failed to download. They have been ignored, or old ones used instead.
  • Jika mengalami Kesalahan, seprti Output di atas ini berarti jaringan tidak bisa mengambil mirror repo debian mari kita set dan atur DNS nya.

     

     Mengatur DNS

     

     

  • 1.Pastikan Direktori Telah Dibuat: Jika belum ada, buatlah direktori /etc di dalam chroot sebelum menulis file resolv.conf:

    sh
    mkdir -p /data/local/debian-arm64-chroot/etc
  • 2.Coba Menulis Kembali resolv.conf: Setelah itu, coba tulis kembali resolv.conf dengan menetapkan nameserver yang sesuai:

    sh
    echo "nameserver 8.8.8.8" > /data/local/debian-arm64-chroot/etc/resolv.conf
  • 3.Jalankan apt update: Setelah menetapkan resolv.conf, coba jalankan kembali apt update di dalam chroot untuk memastikan koneksi internet dan akses ke deb.debian.org berfungsi dengan baik:

    sh
    ohm:/data/local/debian-arm64-chroot # chroot /data/local/debian-arm64-chroot apt update Hit:1 http://deb.debian.org/debian buster InRelease Get:2 http://deb.debian.org/debian buster/main Translation-en [5969 kB] Fetched 5969 kB in 8s (790 kB/s) Reading package lists... Done Building dependency tree... Done All packages are up to date. W: No sandbox user '_apt' on the system, can not drop privileges

  •  

  • Jika anda memiliki Warm seperti ini :W: No sandbox user '_apt' on the system, can not drop privileges
  • jangan khawatir, karena belum ada pengguna sanbox untuk mengatasi ini kita akan mengkonfigurasi pennggu sanbox.

     

    Konfigurasi Pengguna Rootfs 

     

  • sh
    I have no name!@localhost:/# whoami whoami: cannot find name for user ID 0
  • Di atas terlihat bahwa user belum ada untuk user ID 0, mari kita buat.

    Solusi untuk Masalah "cannot find name for user ID 0":

    1. Pastikan Lingkungan Chroot Teratur dengan Benar:

      • Pastikan Anda sudah benar-benar masuk ke lingkungan chroot Debian di perangkat Android. Anda bisa memeriksa dengan menjalankan perintah:
        sh
        chroot /data/local/debian-arm64-chroot /bin/bash
      • Pastikan juga bahwa file-file penting seperti /etc/passwd dan /etc/shadow sudah ada dan dapat diakses dengan benar di dalam chroot.
    2. Atur File /etc/passwd dengan Benar:

      • Pastikan file /etc/passwd di dalam chroot memiliki entri yang benar untuk pengguna root (biasanya dengan ID 0) dan pengguna lainnya yang Anda tambahkan.
      • Pastikan bahwa entri untuk pengguna root (root) ada dengan benar, misalnya:
        ruby
        root:x:0:0:root:/root:/bin/bash
    3. Periksa Izin File-file Penting:

      • Pastikan izin file /etc/passwd, /etc/shadow, dan file-file konfigurasi penting lainnya diatur dengan benar. Anda dapat mencoba mengatur ulang izin jika perlu:
        sh
        chmod 644 /etc/passwd
    4. Restart Lingkungan Chroot:

      • Kadang-kadang restart lingkungan chroot dapat membantu memperbaiki masalah izin atau konfigurasi yang tidak benar:
        sh
        exit chroot /data/local/debian-arm64-chroot /bin/bash
        root@localhost:/# // Anda sudah memiliki user hak istimewa. 
    5. Periksa Log untuk Informasi Lebih Lanjut:

      • Jika masalah terus berlanjut, periksa log sistem di lingkungan chroot untuk mendapatkan informasi lebih lanjut tentang kesalahan yang mungkin terjadi.


    Konfigurasi Sudo Rootfs

     

    sh
    root@localhost:/# apt install sudo -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: lsb-base The following NEW packages will be installed: lsb-base sudo 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 1 not fully installed or removed. Need to get 0 B/1236 kB of archives. After this operation, 3878 kB of additional disk space will be used. debconf: delaying package configuration, since apt-utils is not installed E: Can not write log (Is /dev/pts mounted?) - posix_openpt (19: No such device) Selecting previously unselected package lsb-base. (Reading database ... 2225 files and directories currently installed.) Preparing to unpack .../lsb-base_10.2019051400_all.deb ... Unpacking lsb-base (10.2019051400) ... Selecting previously unselected package sudo. Preparing to unpack .../sudo_1.8.27-1+deb10u3_arm64.deb ... Unpacking sudo (1.8.27-1+deb10u3) ... Setting up lsb-base (10.2019051400) ... Setting up sudo (1.8.27-1+deb10u3) ... chown: invalid group: 'root:root' dpkg: error processing package sudo (--configure): installed sudo package post-installation script subprocess returned error exit status 1 Setting up passwd (1:4.5-1.1) ... invalid password file entry delete line ''? No pwck: no changes chown: invalid group: 'root:root' Shadow passwords are now on. Errors were encountered while processing: sudo E: Sub-process /usr/bin/dpkg returned an error code (1)

    Pesan kesalahan yang Anda lihat, terutama "chown: invalid group: 'root

    '" dan "Shadow passwords are now on", menunjukkan adanya masalah dengan konfigurasi file sistem dan izin di lingkungan chroot Debian Anda.

    Langkah-langkah untuk Mengatasi Masalah:

    1. Perbaiki File /etc/passwd dan /etc/group:

      • Pastikan entri untuk pengguna root dan grup root ada di file /etc/passwd dan /etc/group.
      • Buka file /etc/passwd dan pastikan baris berikut ada:
        sh
        root:x:0:0:root:/root:/bin/bash
      • Buka file /etc/group dan pastikan baris berikut ada:
        sh
        root:x:0:
    2. Periksa dan Perbaiki File /etc/shadow:

      • Pastikan file /etc/shadow ada dan memiliki izin yang benar.
      • Jika file ini tidak ada, Anda mungkin perlu membuatnya dengan entri dasar untuk pengguna root:
        sh
        touch /etc/shadow chmod 600 /etc/shadow echo 'root:*:18553:0:99999:7:::' > /etc/shadow
    3. Coba Install Kembali:

      • Setelah memastikan file-file tersebut ada dan dikonfigurasi dengan benar, coba jalankan kembali perintah untuk menginstal sudo:
        sh
        apt install sudo -y
    4. Periksa Izin pada File-File Penting:

      • Pastikan izin pada file-file penting sudah diatur dengan benar:
        sh
        chmod 644 /etc/passwd chmod 644 /etc/group chmod 600 /etc/shadow
    5. Mount /dev/pts jika Belum Dimount:

      • Mount /dev/pts jika belum dimount. Hal ini dapat membantu memperbaiki beberapa masalah terkait perangkat pseudo-terminal.
        sh
        mount -t devpts devpts /dev/pts

    Contoh Langkah-langkah yang Perlu Dilakukan di Dalam Chroot:

    1. Masuk ke Lingkungan Chroot:

      sh
      chroot /data/local/debian-arm64-chroot /bin/bash
    2. Periksa dan Perbaiki File /etc/passwd dan /etc/group:

      sh
      nano /etc/passwd # Tambahkan atau pastikan entri berikut ada root:x:0:0:root:/root:/bin/bash nano /etc/group # Tambahkan atau pastikan entri berikut ada root:x:0:
    3. Periksa dan Perbaiki File /etc/shadow:

      sh
      touch /etc/shadow chmod 600 /etc/shadow echo 'root:*:18553:0:99999:7:::' > /etc/shadow
    4. Mount /dev/pts jika Belum Dimount:

      sh
      mount -t devpts devpts /dev/pts
    5. Coba Install Kembali:

      sh
      apt install sudo -y

     
     

     Konfigurasi Akses path System di perangkat Smart TV

    Anda bisa mengakses dan mengkonfigurasi sistem di perangkat Android, tetapi ada beberapa keterbatasan dan hal yang perlu diperhatikan:

    1. Akses ke Sistem Android:

      • Dengan chroot, Anda dapat mengakses filesystem root perangkat Android jika Anda memberikan akses yang sesuai saat melakukan mount.
      • Anda bisa mengubah konfigurasi sistem Android dan file yang ada di dalam partisi yang di-mount, tetapi ini bisa berisiko jika tidak dilakukan dengan hati-hati.
    2. Mount Partisi yang Diperlukan:

      • Untuk dapat mengakses sistem file Android dari dalam chroot, Anda perlu mount partisi yang relevan. Misalnya, Anda dapat mount /system, /data, dan partisi lainnya yang ingin Anda akses.
    3. Izin dan Hak Akses:

      • Anda harus memiliki hak akses root di perangkat Android untuk bisa mount partisi dan melakukan perubahan pada sistem file.
      • Pastikan untuk memahami struktur dan fungsi dari file sistem Android sebelum melakukan perubahan, karena kesalahan dapat menyebabkan perangkat tidak dapat di-boot atau berfungsi dengan benar.

    Contoh Langkah-langkah untuk Mengakses Sistem Android dari dalam Chroot:

    1. Masuk ke Lingkungan Chroot:

      sh
      chroot /data/local/debian-arm64-chroot /bin/bash
    2. Mount Partisi Sistem Android:

      • Mount partisi /system:
        sh
        mount -o bind /system /data/local/debian-arm64-chroot/system
      • Mount partisi /data:
        sh
        mount -o bind /data /data/local/debian-arm64-chroot/data
      • Mount partisi lainnya sesuai kebutuhan.
    3. Mengakses dan Mengkonfigurasi Sistem:

      • Setelah partisi di-mount, Anda dapat mengakses dan mengubah konfigurasi di partisi tersebut dari dalam chroot.
      • Misalnya, mengubah file konfigurasi di /system atau /data:
        sh
        nano /system/build.prop

    Perhatian:

    • Backup: Selalu backup data penting sebelum melakukan perubahan pada sistem.
    • Pemahaman Struktur Sistem: Pastikan Anda memahami struktur sistem file dan fungsinya sebelum melakukan perubahan.
    • Resiko Bootloop: Perubahan yang tidak tepat dapat menyebabkan perangkat mengalami bootloop atau tidak dapat booting.

     

    Untuk dapat mengakses storage perangkat (misalnya internal storage atau SD card) dari dalam lingkungan chroot Debian, Anda perlu melakukan mount partisi storage tersebut ke direktori yang sesuai di dalam chroot. Berikut adalah langkah-langkahnya:

    Langkah-langkah Lengkap:

    1. Masuk ke Shell Root di Android:

      sh
      adb shell su
    2. Buat Direktori Mount Point di Luar dan di Dalam Chroot:

      • Buat direktori mount point untuk internal storage:
        sh
        mkdir -p /data/local/debian-arm64-chroot/sdcard mkdir -p /data/local/debian-arm64-chroot/storage
    3. Mount Partisi Storage ke Direktori Mount Point:

      • Mount internal storage:
        sh
        mount -o bind /sdcard /data/local/debian-arm64-chroot/sdcard mount -o bind /storage /data/local/debian-arm64-chroot/storage
    4. Masuk ke Lingkungan Chroot:

      sh
      chroot /data/local/debian-arm64-chroot /bin/bash
    5. Verifikasi Mount di Dalam Chroot:

      sh
      ls /sdcard ls /storage

    Langkah-langkah Detail dari Awal:

    1. Buka Terminal di Komputer Anda dan Koneksikan ke Perangkat Android via ADB:

      sh
      adb shell su
    2. Buat Direktori Mount Point di Perangkat Android:

      sh
      mkdir -p /data/local/debian-arm64-chroot/sdcard mkdir -p /data/local/debian-arm64-chroot/storage
    3. Mount Partisi Storage ke Direktori Mount Point:

      sh
      mount -o bind /sdcard /data/local/debian-arm64-chroot/sdcard mount -o bind /storage /data/local/debian-arm64-chroot/storage
    4. Masuk ke Lingkungan Chroot Debian:

      sh
      chroot /data/local/debian-arm64-chroot /bin/bash
    5. Verifikasi Mount di Dalam Chroot:

      sh
      ls /sdcard ls /storage

    Akses Storage dari Dalam Chroot:

    Sekarang Anda sudah berada di dalam lingkungan chroot Debian dan telah berhasil mount partisi storage. Anda dapat mengakses file di internal storage atau SD card.

    Contoh Akses dan Konfigurasi:

    • Mengakses file di internal storage:
      sh
      ls /sdcard
    • Mengakses file di direktori storage:
      sh
      ls /storage
     
     

    Kesimpulan

    Mengatur lingkungan chroot Debian di perangkat Android memungkinkan Anda untuk mengakses dan mengkonfigurasi sistem perangkat Android dengan cara yang lebih fleksibel dan familiar bagi pengguna Linux. Berikut adalah langkah-langkah utama yang telah dilakukan:

    1. Download dan Siapkan Rootfs Debian:

      • Download Debian ARM64 netinst ISO.
      • Ekstrak rootfs dari ISO menggunakan debootstrap.
    2. Transfer dan Ekstrak Rootfs ke Perangkat Android:

      • Transfer rootfs yang telah diekstrak ke perangkat Android.
      • Ekstrak rootfs di lokasi yang sesuai di perangkat Android.
    3. Konfigurasi Lingkungan Chroot:

      • Masuk ke lingkungan chroot Debian.
      • Konfigurasi DNS dan update package.
      • Install package penting seperti sudo.
    4. Mount Partisi Sistem Android ke dalam Chroot:

      • Buat direktori mount point untuk partisi sistem dan storage Android.
      • Mount partisi /system, /data, /sdcard, dan /storage ke dalam chroot.
    5. Akses dan Konfigurasi Sistem dari Dalam Chroot:

      • Akses file sistem Android dari dalam chroot.
      • Mengubah file konfigurasi dan melakukan penyesuaian sistem sesuai kebutuhan.
      • Menambahkan atau menghapus pengguna sesuai keperluan.

    Poin Penting:

    • Backup Data: Selalu backup data penting sebelum melakukan perubahan pada sistem.
    • Pemahaman Sistem: Pahami struktur dan fungsi dari file sistem Android sebelum melakukan perubahan.
    • Resiko Bootloop: Perubahan yang tidak tepat dapat menyebabkan perangkat mengalami bootloop atau tidak dapat booting.

    Dengan mengikuti langkah-langkah di atas, Anda dapat dengan aman mengatur dan menggunakan lingkungan chroot Debian di perangkat Android Anda, memberikan kemampuan untuk melakukan konfigurasi dan penyesuaian yang lebih mendalam pada sistem perangkat. 

     

  • Badut tidak akan pernah bersedih :)

    Post a Comment

    Earn Bitcoin

    coinpayu
    © Blog Warceu Project . All rights reserved. Distributed by ASThemesWorld