So, first thing I did (and you should too) was to dump the flash (so it can be restored if needed)
Power off your device, hold power and volume up, until it vibrates.
Let go.
Once you see "no command":
Press power, then volume up, then let go of volume up, then let go of power. That will drop you to the recovery menu. Use volume and power to move and select in the menu.
From there, "reboot to bootloader" to get into fastboot.
Once you're in fastboot and EDL mode, you can use Qualcomm Firehose/EDL tooling to pull down the flash
-rw-rw-r-- 1 gordo gordo 1.0M Nov 19 21:42 abootbak.bin -rw-rw-r-- 1 gordo gordo 1.0M Nov 19 21:42 aboot.bin -rw-rw-r-- 1 gordo gordo 256K Nov 19 21:42 apdp.bin -rw-r--r-- 1 gordo gordo 19M Nov 19 21:59 boot.bin -rw-rw-r-- 1 gordo gordo 110M Nov 20 01:23 cache.bin -rw-rw-r-- 1 gordo gordo 256K Nov 19 21:42 cmnlibbak.bin -rw-rw-r-- 1 gordo gordo 256K Nov 19 21:42 cmnlib.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 config.bin -rw-rw-r-- 1 gordo gordo 32K Nov 19 21:40 DDR.bin -rw-rw-r-- 1 gordo gordo 256K Nov 19 21:42 devcfg.bin -rw-rw-r-- 1 gordo gordo 1.0M Nov 19 21:42 devinfo.bin -rw-rw-r-- 1 gordo gordo 1.0K Nov 19 21:42 fsc.bin -rw-rw-r-- 1 gordo gordo 1.5M Nov 19 21:40 fsg.bin -rw-rw-r-- 1 gordo gordo 16K Nov 19 21:40 gpt_backup0.bin -rw-rw-r-- 1 gordo gordo 17K Nov 19 21:40 gpt_main0.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 keymasterbak.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 keymaster.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 keystore.bin -rw-rw-r-- 1 gordo gordo 8.0M Nov 19 21:42 misc.bin -rw-rw-r-- 1 gordo gordo 66M Nov 19 21:40 modem.bin -rw-rw-r-- 1 gordo gordo 1.5M Nov 19 21:42 modemst1.bin -rw-rw-r-- 1 gordo gordo 1.5M Nov 19 21:42 modemst2.bin -rw-rw-r-- 1 gordo gordo 8.0M Nov 19 21:42 oem.bin -rw-rw-r-- 1 gordo gordo 1.0M Nov 19 21:42 pad.bin -rw-rw-r-- 1 gordo gordo 32M Nov 19 21:42 persist.bin -rw-rw-r-- 1 gordo gordo 4.0K Nov 19 21:42 prodinfo2.bin -rw-rw-r-- 1 gordo gordo 4.0K Nov 19 21:42 prodinfo.bin -rw-rw-r-- 1 gordo gordo 32M Nov 19 21:42 recovery.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 rpmbak.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 rpm.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 sbl1bak.bin -rw-rw-r-- 1 gordo gordo 512K Nov 19 21:42 sbl1.bin -rw-rw-r-- 1 gordo gordo 16K Nov 19 21:40 sec.bin -rw-rw-r-- 1 gordo gordo 10M Nov 19 21:42 splash.bin -rw-rw-r-- 1 gordo gordo 8.0K Nov 19 21:42 ssd.bin -rw-rw-r-- 1 gordo gordo 1.2G Nov 20 01:22 system.bin -rw-rw-r-- 1 gordo gordo 2.0M Nov 19 21:42 tzbak.bin -rw-rw-r-- 1 gordo gordo 2.0M Nov 19 21:42 tz.bin -rw-rw-r-- 1 gordo gordo 5.5G Nov 19 21:49 userdata.bin -rw-rw-r-- 1 gordo gordo 250M Nov 20 01:14 vendor.bin
Basically, all Qualcomm devices support this sort of tooling to program, dump, and flash the chipsets. To fix a bricked device, you will need a special USB cable to trigger EDL mode on boot of your device. That's unlikely, but if you see the lightphone boot logo, it's probably just in fastboot mode, and you can use EDL to dump new fastboot images and restore your device. Anyway, I digress...
Using fastboot to enable ADB is the next step:
fastboot oem adb_enable 1
This enables the ADB shell, and will let you get into the developer menus, etc, if you know how to control the Android UI from the command line.
After you've dumped, and enabled ADB, you can get a shell after rebooting, then you can then
use "am" to launch activities from a shell.
fastboot reboot
Once it boots back up, you'll be able to use a normal ADB shell.
LightPhone2:/ $
You'll need to turn the screen off and back on each time you do something to force it to redraw at this point. You might think it's not responsive, but it's just because the screen doesn't redraw.
I was able to get developer mode activated pretty easily after this using ADB.
Also, there is no back button, so you'll need to use the adb shell to send input events at first:
https://developer.android.com/reference/android/view/KeyEvent input keyevent 4
^ that is back.
Also, I figured out, if you take a screenshot from the adb shell, it, for some reason, forces the screen to update more often, regularly.
adb exec-out screencap -p > screen.png
for example, will grab a screenshot to your machine... (that's how I grabbed some of the ones linked below)
Here are some screenshots:
https://imgur.com/a/AxPF0qb Lots of stuff in here that's good to know...
For example, I'm pretty sure Light are using DavX for syncing contacts, etc... It also has a LOT of access to other permissions if you start poking around in there...
https://www.davx5.com/ You might want to revoke all of those permissions, or remove this app entirely, but I'm sure that'll break the Light dashboard sync abilities. <_<
You can use the UI, or the ADB shell to set the display settings to be more readable:
Via the adb shell, you can use the "settings" command:
accessibility_display_magnification_scale font_scale
Here are some photos for proof:
https://imgur.com/a/yuG9cyq Enjoy!
I, personally, am very much looking forward to exposing the Android guts of this thing, and getting the DavX shit off here, and using my own sideloaded apps (I'm a developer). I don't want Light, or anyone else, having all my contacts and calendar info, for example.
Just being able to set the damn timezone, finally, is a relief. It's so annoying, I shouldn't need cell service to set the timezone. It's a native option in Android, I see NO reason why they need to restrict these options... It's rather absurd.
Using the native Android menus on this things are fine... when needed, you just need a shell to fire it up. I don't think it would be hard to add some button press logic to turn screen refresh mode on/off, I see lots of potential in this device... Until my hisense a5 pro cc arrives, I'm going to be hacking on this thing. :)
I see no reason this can't run any normal Android app, and it should be possible to get at the React UI code to hack the LightOS launcher. They didn't build some kind of magical new operating system, it's literally just Android with a custom launcher that uses a web based UI.
Looks like this thing is using a pretty damn old version of Android, too, which is concerning... It's using Android 8.1, which has tons of vulnerabilities. I would NOT want to use this device for anything that needs to be secure, at least, not out of the box.
Here's some juicy dumps from the boot log:
[ 2.227746] ro.build.version.release=8.1.0See here for some Qualcomm goodies: https://github.com/msm-proprietary/vendor_qcom_proprietary-msm8909go [ 2.227810] ro.build.version.codename=REL [ 2.227869] ro.build.version.incremental=12091933 [ 2.227931] ro.build.version.preview_sdk=0 [ 2.227992] ro.build.version.all_codenames=REL [ 2.228052] ro.build.version.security_patch=2019-10-05 [ 2.228110] ro.build.description=LightPhone2-user 8.1.0 4101.0.A.0073 12091933 release-keys [ 2.228168] ro.build.characteristics=default [ 2.228227] ro.build.shutdown_timeout=0 [ 2.228286] ro.secure=1 [ 2.228346] ro.treble.enabled=true [ 2.228404] ro.vendor.qti.sys.fw.empty_app_percent=50 [ 2.228462] ro.vendor.qti.sys.fw.use_trim_settings=true [ 2.228521] ro.vendor.qti.sys.fw.trim_cache_percent=100 [ 2.228580] ro.vendor.qti.sys.fw.trim_empty_percent=100 [ 2.228639] ro.vendor.qti.sys.fw.trim_enable_memory=1073741824 [ 2.228697] ro.vendor.qti.config.zram=true [ 2.228756] ro.vendor.qti.core_ctl_max_cpu=4 [ 2.228814] ro.vendor.qti.core_ctl_min_cpu=2 [ 2.228873] ro.vendor.audio.sdk.ssr=false [ 2.228931] ro.vendor.audio.sdk.fluencetype=none [ 2.228990] ro.vendor.build.date=Mon Dec 9 20:03:35 CST 2019 [ 2.229051] ro.vendor.build.date.utc=1575893015 [ 2.229110] ro.vendor.build.fingerprint=Light/LightPhone2/LightPhone2:8.1.0/4101.0.A.0073/12091933:userelease-keys [ 2.229169] ro.vendor.product.name=LightPhone2 [ 2.229228] ro.vendor.product.brand=Light [ 2.229286] ro.vendor.product.model=TLP201 [ 2.229344] ro.vendor.product.device=LightPhone2 [ 2.229403] ro.vendor.product.manufacturer=Light [ 2.229461] ro.vendor.extension_library=libqti-perfd-client.so [ 2.229519] ro.zygote=zygote32 [ 2.229577] ro.carrier=unknown [ 2.229638] ro.product.cpu.abi=armeabi-v7a [ 2.229696] ro.product.cpu.abi2=armeabi [ 2.229753] ro.product.cpu.abilist=armeabi-v7a,armeabi [ 2.229812] ro.product.cpu.abilist32=armeabi-v7a,armeabi [ 2.229871] ro.product.cpu.abilist64= [ 2.229929] ro.product.name=LightPhone2 [ 2.229987] ro.product.board=LightPhone2 [ 2.230044] ro.product.brand=Light [ 2.230103] ro.product.model=TLP201 [ 2.230161] ro.product.device=LightPhone2 [ 2.230219] ro.product.locale=en-US [ 2.230277] ro.product.manufacturer=Light [ 2.230335] ro.baseband=msm [ 2.230392] ro.bootmode=unknown [ 2.230450] ro.hardware=qcom [ 2.230510] ro.hardware.nfc_nci=nqx.default [ 2.230568] ro.revision=0 [ 2.230628] ro.bootimage.build.date=Mon Dec 9 20:03:35 CST 2019 [ 2.230686] ro.bootimage.build.date.utc=1575893015 [ 2.230745] ro.bootimage.build.fingerprint=Light/LightPhone2/LightPhone2:8.1.0/4101.0.A.0073/12091933:userelease-keys [ 2.230804] ro.emmc_size=8GB [ 2.230865] ro.telephony.default_network=12,12 [ 2.230925] ro.bootloader=unknown [ 2.230983] ro.debuggable=0 [ 2.231042] ro.recovery_id=0x84f9782c4c3c1417536467c1fcfbf889d348537b000000000000000000000000
Some build info:
# BOOTIMAGE_BUILD_PROPERTIES ro.bootimage.build.date=Mon Dec 9 20:03:35 CST 2019 ro.bootimage.build.date.utc=1575893015 ro.bootimage.build.fingerprint=Light/LightPhone2/LightPhone2:8.1.0/4101.0.A.0073/12091933:userelease-keys persist.sys.usb.config=none # ADDITIONAL VENDOR DEFAULT PROPERTIES ro.oem_unlock_supported=true ro.zygote=zygote32 dalvik.vm.image-dex2oat-Xms=64m dalvik.vm.image-dex2oat-Xmx=64m dalvik.vm.dex2oat-Xms=64m dalvik.vm.dex2oat-Xmx=512m ro.dalvik.vm.native.bridge=0 dalvik.vm.usejit=true dalvik.vm.usejitprofiles=true dalvik.vm.dexopt.secondary=true dalvik.vm.appimageformat=lz4 pm.dexopt.first-boot=quicken pm.dexopt.boot=verify pm.dexopt.install=quicken pm.dexopt.bg-dexopt=speed-profile pm.dexopt.ab-ota=speed-profile pm.dexopt.inactive=verify pm.dexopt.shared=speed debug.atrace.tags.enableflags=0 # begin build properties # autogenerated by buildinfo.sh ro.build.id=4101.0.A.0073 ro.build.display.id=4101.0.A.0073 ro.build.version.incremental=12091933 ro.build.version.sdk=27 ro.build.version.preview_sdk=0 ro.build.version.codename=REL ro.build.version.all_codenames=REL ro.build.version.release=8.1.0 ro.build.version.security_patch=2019-10-05 ro.build.version.base_os= ro.build.date=Mon Dec 9 20:03:35 CST 2019 ro.build.date.utc=1575893015 ro.build.type=user ro.build.user=build ro.build.host=8fa5f824c591 ro.build.tags=release-keys ro.build.flavor=LightPhone2-user ro.product.model=TLP201 ro.product.brand=Light ro.product.name=LightPhone2 ro.product.device=LightPhone2 # ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete, # use ro.product.cpu.abilist instead. ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.cpu.abilist=armeabi-v7a,armeabi ro.product.cpu.abilist32=armeabi-v7a,armeabi ro.product.cpu.abilist64= ro.product.manufacturer=Light ro.product.locale=en-US ro.wifi.channels= # ro.build.product is obsolete; use ro.product.device ro.build.product=LightPhone2 # Do not try to parse description, fingerprint, or thumbprint ro.build.description=LightPhone2-user 8.1.0 4101.0.A.0073 12091933 release-keys ro.build.fingerprint=Light/LightPhone2/LightPhone2:8.1.0/4101.0.A.0073/12091933:userelease-keys ro.build.characteristics=default # end build properties # from device/qcom/msm8909go/system.prop # system.prop for msm8909go #rild.libpath=/system/lib/libreference-ril.so rild.libpath=/vendolib/libril-qc-qmi-1.so rild.libargs=-d /dev/smd0 persist.rild.nitz_plmn= persist.rild.nitz_long_ons_0= persist.rild.nitz_long_ons_1= persist.rild.nitz_long_ons_2= persist.rild.nitz_long_ons_3= persist.rild.nitz_short_ons_0= persist.rild.nitz_short_ons_1= persist.rild.nitz_short_ons_2= persist.rild.nitz_short_ons_3= ril.subscription.types=NV,RUIM DEVICE_PROVISIONED=1
edit I have acquired root now:
https://www.reddit.com/LightPhone/comments/jxin6c/root_acquired/