Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Android

Hướng dẫn cài đặt và khắc phục sự cố Android x86

Người dùng muốn trải nghiệm Android trên desktop có một vài hệ điều hành dựa trên Android – tuy nhiên nhiều trong số đó chỉ là fork của Android x86 (PrimeOS, Remix OS, Phoenix OS x86). Điều này vì Android x86 từng chậm phát triển, các dev khác tiếp tục phát triển.

Tuy nhiên, Android x86 gần đây cập nhật đều đặn, bao gồm cập nhật lên Android Oreo. Nếu muốn trải nghiệm Android tốt trên desktop, hãy thử Android x86 trước các fork khác (Remix OS đã ngừng phát triển hoàn toàn).

Yêu cầu:

  • Android x86 ISO
  • UNetbootin

Trên Ubuntu: sudo apt-get install unetbootin

Trên Arch Linux: pacman -S unetbootin

Cài đặt qua USB Flash Drive

  1. Mở UNetbootin, trỏ đến file Android x86 ISO.
  2. Chọn "USB Drive", nhấn OK.
  3. UNetbootin copy Android x86 vào USB, biến thành portable installer.
  4. Hoàn tất, reboot máy, vào BIOS menu.
  5. Tìm trang cho phép boot trực tiếp đến media cụ thể (HDD, CD, USB...).
  6. Chọn boot trực tiếp đến USB flash drive.
  7. Menu GRUB xuất hiện, chọn cài Android x86 lên ổ cứng.
  8. Chọn partition cài đặt – nếu không chắc, đừng format partition. Cũng đừng ghi đè partition OS khác.
  9. Hỏi cài GRUB: Nếu chủ yếu dùng Windows, không có Linux khác, chọn Yes. Nếu đã có Linux/GRUB, cài đè là ý tưởng tồi.
  10. Hỏi "Make system R/W". Chọn yes. Sẽ "root" Android x86 và bật read-write cho partition /system.
  11. Reboot, tận hưởng Android x86 mới cài.

Cài đặt qua CD/DVD

Quy trình gần như giống hệt, chỉ khác là burn bootable CD từ Android x86 ISO. Có nhiều ISO burner, có thể dùng Free ISO Burner.

Cài đặt lên Virtual Machine

  1. Cấu hình VM tối thiểu 512 MB RAM, với Android x86 base Oreo mới nên cao hơn.
  2. Load file ISO Android x86 vào VM menu, chạy VM.
  3. Menu GRUB hiện ra, chọn cài Android x86 lên ổ cứng.
  4. Tạo partition mới, cài Android x86 vào. Format partition sang định dạng hỗ trợ: ext3, ext2, ntfs, fat32. Lưu ý chọn fat32 sẽ cảnh báo không lưu data được – Android x86 chạy như live CD (không lưu data khi dùng).
  5. Chọn "Yes" khi hỏi cài bootloader GRUB, cho phép make system R/W để bật root.
  6. Reboot khi xong.

Thêm Android x86 vào menu GRUB

Cài GRUB Customizer trước, sẽ dễ dàng hơn.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Mở GRUB Customizer, thêm entry GRUB mới.

Click tab 'Sources', nhập lệnh:

set root='(hd0,4)'
search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
initrd androidx86/initrd.img

Các phần in đậm cần thay đổi:

  • set root='(hd0,4)': Thay (hd0,4) thành partition cài Android x86. HD0 = SDA, HD1 = SDB... Số sau là partition number. hd0,4 = SDA4, nếu cài SDA6 thì hd0,6.
  • --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3: Chuỗi ngẫu nhiên là UUID partition cài Android x86. Thay bằng UUID đúng. Lấy UUID bằng cách tạo entry mới trong GRUB Customizer, vào tab Options, chọn 'Linux' từ dropdown.
  • Trong dropdown partition, chọn partition của bạn, vào tab Source – sẽ hiển thị UUID.
  • androidx86/: Root của Android x86. Thay bằng root thực tế, vào partition Android x86, sẽ thấy folder 'android' – đó là root cài đặt.
  • androidboot.hardware: Thiết bị cụ thể. Phiên bản Android x86 cũ (như 4.03) dùng androidboot_hardware (dấu _ underscore, không phải . period). Không cần thiết cho phiên bản mới. Khi không set trong kernel cmdline, init process vẫn lấy đúng giá trị ro.hardware.

Danh sách hardware có thể dùng:

  • generic_x86: Hardware không trong danh sách, dùng cái này
  • eeepc: Laptop EEEPC
  • asus_laptop: Laptop ASUS (chỉ ASUS được hỗ trợ)

Mẹo và thủ thuật cuối

Android x86 không dùng được Android Market, cần giải pháp thay thế cài app.

Bật unknown sources: Cài đặt > Ứng dụng > bật Unknown Sources, bỏ qua cảnh báo.

Bây giờ có thể tải cài APK từ ngoài Google Play. Một số store tốt:

  • XDA Labs
  • AndAppStore
  • Aptoide
  • APKMirror

Hiển thị giá trị pin chính xác

Android phát triển cho pin cụ thể, nên Android-based OS hiển thị sai giá trị pin trên hardware khác (như laptop). Để sửa, cần tweak một chút.

Trong Linux, app thu thập trạng thái pin qua sysfs, ở /sys/class/power_supply/. Các platform khác có layout thư mục khác, nhưng Android hardcode layout thành /sys/class/power_supply/. Để giải quyết, thêm entry mới trong vendor/asus/eeepc/system.prop, user đổi giá trị để cấu hình đúng sysfs layout cho platform khác nhau. Các entry:

ro.sys.fs.power_supply.ac=/AC0
ro.sys.fs.power_supply.bat=/BAT0
ro.sys.fs.power_supply.ac.feature.online=/online
ro.sys.fs.power_supply.bat.feature.status=/status
ro.sys.fs.power_supply.bat.feature.present=/present
ro.sys.fs.power_supply.bat.feature.capacity.now=/charge_now
ro.sys.fs.power_supply.bat.feature.capacity.full=/charge_full
ro.sys.fs.power_supply.bat.feature.voltage.now=/voltage_now
ro.sys.fs.power_supply.bat.feature.voltage.full=/voltage_full
ro.sys.fs.power_supply.bat.feature.tech=/technology
#ro.sys.fs.power_supply.bat.features.bat.health is not supported
#ro.sys.fs.power_supply.bat.features.bat.temperature is not supported

Bản chất: Các entry nói cho Android battery service code tìm thông tin ở đúng chỗ.

Để implement code xử lý pin riêng, re-implement class IBatteryServiceStatus trong frameworks/base/libs/utils/IBatteryServiceStatus.cpp, thay thế frameworks/base/libs/utils/BatteryServiceStatus.cpp bằng implementation của bạn.

Đánh thức máy

Khác OS khác, không thể đánh thức từ sleep bằng di chuột hoặc phím ngẫu nhiên.

Chỉ dùng ESC, Menu, left, right, up, down để đánh thức. Giữ phím trên ít nhất 1 giây. Có thể bấm menu key khi keyguard hiện ra để unlock, hoặc dùng chuột cuộn trên keyguard để unlock.

Cách boot Android x86 trên đồ họa không hỗ trợ

Khi boot Live-CD, ở menu các tùy chọn boot, bấm Tab. Sẽ hiện boot prompt.

Sẽ thấy kiểu:

kernel initrd=/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 quiet SRC= DATA= DPI=240

Chỉnh dòng này: trước hết xóa "quiet" để thấy kernel message.

Thiết lập tham số video mode khác nhau. Dùng NoModeSet – tắt kernel mode setting, kernel không tự set độ phân giải. Hoặc Xforcevesa – ép dùng driver VESA.

Thử các tham số này xem cái nào chạy – có thể dùng cả hai "nomodeset xforcevesa".