LG Optimus Slider (lg-vm701)
WARNING: This device cannot run postmarketOS, as its architecture is unsupported. |
Manufacturer | LG |
---|---|
Name | Optimus Slider |
Codename | lg-gelato-q |
Released | 2011 |
Type | slide-out keyboard handset |
Hardware | |
Chipset | Qualcomm MSM7627T |
CPU | 800 MHz ARM11 |
GPU | Adreno 200 |
Display | 320 x 480 TFT |
Storage | 512 MB |
Memory | 512 MB |
Architecture | armv6 |
Software | |
Original software | Android |
Original version | 2.3 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Contributors
- Foldmorepaper
Users owning this device
- Foldmorepaper (Notes: 512MB/512MB)
What Works
The kernel compiles!
What Does Not Work
Flashing is possible, but does not work due to these problems:
- booting off SD is necessary as system and userdata partitions are too small for the current image
- attempting to boot using
pmbootstrap flasher boot
uploads but fails to boot after printing the cmdline to the screen.
Rooting
The exploit used on the LG Esteem also works on the Optimus Slider. Please see this forum thread on AndroidCentral for instructions. [1]
The tool referenced has a dead download link, but is available through the Internet Archive's Wayback Machine. LG_Esteem_Root.zip on archive.org
The tool runs from a .bat script. Though the changes necessary to run it on linux are trivial, here is the modified script:
#!/bin/bash
#####################################
#
# LG Esteem root script
# Linux version
#
# Exploit copyright (C) 2011 Revolutionary
# Scripting for LG Esteem by Dan Rosenberg (@djrbliss)
# Modified for Linux by foldmorepaper (@foldmorepaper)
#
#####################################
#
# Instructions:
#
# 1. Ensure you have the latest drivers installed from LG
#
# 2. Put your device in debugging mode
#
# 3. Attach it via USB
#
# 4. Run this script in the same directory as the rest of the extracted
# zipfile
#
#####################################
echo "[*] LG Esteem root script (Linux version)"
echo "[*] Exploit copyright (C) 2011 Revolutionary"
echo "[*] Scripting for LG Esteem by Dan Rosenberg (@djrbliss)"
echo "[*] Linux script by foldmorepaper (@foldmorepaper)"
echo "[*]"
echo "[*] Before continuing, ensure USB debugging is enabled, that you"
echo "[*] have the latest LG drivers installed, and that your phone is"
echo "[*] connected via USB."
echo "[*]"
read -p "[*] Press enter to root your phone..."
echo "[*]"
echo "[*] Waiting for device..."
adb kill-server
adb wait-for-device
echo "[*] Device found."
echo "[*] Pushing exploit binary..."
adb push zergrush /data/local/tmp/zergrush
adb shell "chmod 755 /data/local/tmp/zergrush"
echo "[*] Running exploit..."
adb shell "echo exit | /data/local/tmp/zergrush"
# Install the goods
echo "[*] Installing root tools..."
adb shell /data/local/tmp/sh -c "mount -orw,remount /dev/block/system /system"
adb shell /data/local/tmp/sh -c "mkdir /system/tmp"
adb shell /data/local/tmp/sh -c "chmod 777 /system/tmp"
adb push su /system/tmp/su
adb push busybox /system/tmp/busybox
adb push Superuser.apk /system/tmp/Superuser.apk
adb shell /data/local/tmp/sh -c "mv /system/tmp/su /system/xbin/su"
adb shell /data/local/tmp/sh -c "mv /system/tmp/Superuser.apk /system/app/Superuser.apk"
adb shell /data/local/tmp/sh -c "mv /system/tmp/busybox /system/xbin/busybox"
adb shell /data/local/tmp/sh -c "chown root /system/xbin/su"
adb shell /data/local/tmp/sh -c "chmod 4755 /system/xbin/su"
adb shell /data/local/tmp/sh -c "ln -s /system/xbin/su /system/bin/su"
adb shell /data/local/tmp/sh -c "chmod 755 /system/xbin/busybox"
adb shell /data/local/tmp/sh -c "/system/xbin/busybox --install /system/xbin/"
# Clean up after ourselves
echo "[*] Cleaning up..."
adb shell /data/local/tmp/sh -c "rmdir /system/tmp"
adb shell "rm /data/local/tmp/* 2>/dev/null"
echo "[*] Rebooting..."
adb reboot
adb wait-for-device
echo "[*] Root complete, enjoy!"
echo "[*] Press any key to exit."
adb kill-server
Additional Info
# cat /proc/partitions
major minor #blocks name
31 0 5120 mtdblock0
31 1 117888 mtdblock1
31 2 7168 mtdblock2
31 3 1280 mtdblock3
31 4 1024 mtdblock4
31 5 1024 mtdblock5
31 6 161792 mtdblock6
31 7 185344 mtdblock7
31 8 512 mtdblock8
31 9 1536 mtdblock9
# cat /etc/fstab
/dev/block/mtdblock1 /cache yaffs2 rw
/dev/block/mtdblock7 /data yaffs2 rw
/dev/block/mmcblk0p1 /sdcard vfat rw
/sd-ext auto rw
/dev/block/mtdblock6 /system yaffs2 rw
# cat /proc/mtd
dev: size erasesize name
mtd0: 00500000 00020000 "boot"
mtd1: 07320000 00020000 "cache"
mtd2: 00700000 00020000 "recovery"
mtd3: 00140000 00020000 "splash"
mtd4: 00100000 00020000 "FOTA"
mtd5: 00100000 00020000 "FOTA_STO"
mtd6: 09e00000 00020000 "system"
mtd7: 0b500000 00020000 "userdata"
mtd8: 00080000 00020000 "misc"
mtd9: 00180000 00020000 "persist"
Custom Recovery
Two custom recoveries are available for the vm701. Use in the context of postmarketOS:
- CWM
- Enable fastboot by formatting the the boot partition
- Restore commonly-available Android system backups
- TWRP
- ADB access without booting Android
To flash a custom recovery to the recovery partition (before having access to fastboot), the tool flash_image
is required. (available from, among other sources, BobZhome ROM's) [2]
$ adb push recovery.img /sdcard/
$ adb push flash_image /sdcard/
$ adb shell
$ su
# mount -o remount, rw /system
# cp /sdcard/flash_image /system/bin
# chmod 777 /system/bin/flash_image
# flash_image recovery /sdcard/recovery.img
# reboot recovery
Booting to Recovery
- From power-off: hold buttons Power + Volume Down until booted into recovery
- Using ADB:
$ adb reboot recovery
- Using fastboot:
$ fastboot reboot recovery
CWM
A custom CWM recovery is available from BobZhome ROM's. [3]
Push to SD card:
$ adb push BobZhome_VM701_recovery.img /sdcard/
The volume buttons scroll through menu options, and the camera button selects menu options |
Flash from Android
Using flash_image
, flash recovery image to recovery partition (from ADB):
# flash_image recovery /sdcard/BobZhome_VM701_recovery.img
Flash/Boot from Fastboot
Boot recovery image fastboot boot BobZhome_VM701_recovery.img
Flash recovery image fastboot flash recovery BobZhome_VM701_recovery.img
TWRP
Download the official TWRP recovery from the device page. [4]
Push to SD card:
$ adb push twrp-2.8.5.0-gelato.img /sdcard/
Flash from Android
Using flash_image
, flash recovery image to recovery partition (from ADB):
# flash_image recovery /sdcard/twrp-2.8.5.0-gelato.img
Flash/Boot from Fastboot
Boot recovery image fastboot boot twrp-2.8.5.0-gelato.img
Flash recovery image fastboot flash recovery twrp-2.8.5.0-gelato.img
Installation
Fastboot
Fastboot is only available upon erasing/formatting the boot partition. There are alternative means of nulling the boot partition, but CWM is the easiest.
It is recommended, as always, to make a full system backup before doing any modifications. This is especially necessary in this case, as unbricking from emergency mode (camera button + backup button, plug in usb cable to computer) is not possible, even though the lg mobile support tool recognizes the device and downloads a firmware image, an unknown error occurs.
To format the boot partition, Mounts and Storage -> format /boot -> Yes - Format
On boot, fastboot should automatically start. To restore normal boot functionality, restore boot partition from backup.