# Question
Title: Retrieving messages from phone where cannot see screen
I damaged my old phone. The screen is almost completely shattered to the point I cannot see or touch it. Everything else works fine. I have a USB otg cable and can use a keyboard to type in my PIN. Is there a way I can retrieve my text messages? Even if I could just mount it for file transfer so I can copy over the latest backups that would be great. Now if I plug it into a computer nothing shows up because it's in 'charging only' mode. It is running LineageOS with root enabled. I thought it had adb but it is not working. I also can get into TWRP but can't get by the lock screen, I seem to recall the OTG doesn't work with TWRP.

Contents of `recovery.log` from `adb pull`

```
Starting TWRP 3.5.2_9-0-2bc3eccd on Mon Nov 13 05:17:09 1972
 (pid 590)
BOARD_HAS_NO_REAL_SDCARD := true
RECOVERY_SDCARD_ON_DATA := true
I:Lun file '/sys/class/android_usb/android0/f_mass_storage/lun0/file' does not exist, USB storage mode disabled
TW_INCLUDE_CRYPTO := true
I:TW_BRIGHTNESS_PATH := /sys/class/leds/wled/brightness
I:Found brightness file at '/sys/class/leds/wled/brightness'
I:TWFunc::Set_Brightness: Setting brightness control to 1600
I:LANG: en
Starting the UI...
setting DRM_FORMAT_RGB565 and GGL_PIXEL_FORMAT_RGB_565
cannot find/open a drm device: No such file or directory
fb0 reports (possibly inaccurate):
  vi.bits_per_pixel = 32
  vi.red.offset   =   0   .length =   8
  vi.green.offset =   8   .length =   8
  vi.blue.offset  =  16   .length =   8
setting GGL_PIXEL_FORMAT_RGBA_8888
double buffered
framebuffer: 0 (720 x 1280)
Using fbdev graphics.
I:TWFunc::Set_Brightness: Setting brightness control to 1600
I:Loading package: splash (/twres/splash.xml)
I:Load XML directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/splash.xml' directly
I:Checking resolution...
I:Scaling theme width 0.666667x and height 0.666667x, offsets x: 0 y: 0 w: 0 h: 0
I:Loading resources...
I:Loading variables...
I:Loading mouse cursor...
I:Loading pages...
I:Loading page splash
I:Switching packages (splash)
=> Linking mtab
=> Processing /etc/recovery.fstab for SAR-detection
I:Reading /etc/recovery.fstab
I:Done processing fstab files
I:SAR-DETECT: SAR System detected
=> Processing /etc/recovery.fstab
I:Reading /etc/recovery.fstab
I:Processing '/boot'
I:Processing '/system'
I:Created '/system_root' folder.
I:Processing '/system_image'
I:Processing '/vendor'
I:Processing '/vendor_image'
I:Processing '/oem'
I:Processing '/cache'
I:Processing '/data'
I:FBE contents 'ice', filenames ''
I:Processing '/recovery'
I:Processing '/dsp'
I:Created '/dsp' folder.
I:Processing '/misc'
I:Processing '/firmware'
I:Processing '/bt_firmware'
I:Created '/bt_firmware' folder.
I:Processing '/efs1'
I:Processing '/efs2'
I:Processing '/mnt/vendor/persist'
I:Created '/mnt/vendor/persist' folder.
I:Processing '/sdcard1'
I:Created '/sdcard1' folder.
I:Processing '/usb-otg'
I:Created '/usb-otg' folder.
I:Done processing fstab files
I:Setting up '/data' as data/media emulated storage.
I:mount -o bind '/data/media' '/sdcard' process ended with RC=0
I:mount -o bind '/data/media/0' '/sdcard' process ended with RC=0
I:File Based Encryption is present
e4crypt_initialize_global_de
Determining wrapped-key support for /data
fbe.data.wrappedkey = false
calling retrieveAndInstallKey
Key exists, using: /data/unencrypted/key
Using Keymaster HAL: 3 from QTI for encryption.  Security level: TRUSTED_ENVIRONMENT, HAL: android.hardware.keymaster@3.0::IKeymasterDevice/default
begin failed, code -62
Upgrading key in memory only: /data/unencrypted/key
Key upgraded in memory but not updated in folder: /data/unencrypted/key
Determining wrapped-key support for /data
fbe.data.wrappedkey = false
Added key 212974880 (ext4:7e2c2ec01f8f350c) to keyring 41419702 in process 590
Added key 144230274 (f2fs:7e2c2ec01f8f350c) to keyring 41419702 in process 590
Added key 232568469 (fscrypt:7e2c2ec01f8f350c) to keyring 41419702 in process 590
contents mode 'ice' filenames 'aes-256-heh'
Wrote system DE key reference to:/data/unencrypted/ref
e4crypt_init_user0
Preparing: /data/misc/vold/user_keys
Preparing: /data/misc/vold/user_keys/ce
Preparing: /data/misc/vold/user_keys/de
Skipping non-de-key ..
Skipping non-de-key .
Using Keymaster HAL: 3 from QTI for encryption.  Security level: TRUSTED_ENVIRONMENT, HAL: android.hardware.keymaster@3.0::IKeymasterDevice/default
begin failed, code -62
Upgrading key in memory only: /data/misc/vold/user_keys/de/0
Key upgraded in memory but not updated in folder: /data/misc/vold/user_keys/de/0
Determining wrapped-key support for /data
fbe.data.wrappedkey = false
Determining wrapped-key support for /data
fbe.data.wrappedkey = false
Added key 963511470 (ext4:1f22a164457530fa) to keyring 41419702 in process 590
Added key 866500849 (f2fs:1f22a164457530fa) to keyring 41419702 in process 590
Added key 400409343 (fscrypt:1f22a164457530fa) to keyring 41419702 in process 590
Installed de key for user 0
Using synthetic password method
Handle is '0c2d2ce4f11d9576'
I:PageManager::LoadFileToBuffer loading filename: '/data/system/users/0.xml' directly
Using synthetic password method
Handle is '0c2d2ce4f11d9576'
I:User 0 is not decrypted.
I:Backup folder set to '/data/media/0/TWRP/BACKUPS/BH9086U09E'
I:Settings storage is '/data/media/0'
Updating partition details...
I:Data backup size is 16518MB, free: 1410MB.
I:Unable to mount '/sdcard1'
I:Actual block device: '', current file system: 'auto'
I:Unable to mount '/usb-otg'
I:Actual block device: '', current file system: 'auto'
...done
I:Unmounting main partitions...

Partition Logs:
/boot | /dev/block/bootdevice/by-name/boot | Size: 64MB
   Flags: Can_Be_Backed_Up IsPresent Can_Flash_Img SlotSelect
   Primary_Block_Device: /dev/block/bootdevice/by-name/boot
   Display_Name: Boot
   Storage_Name: boot
   Backup_Path: /boot
   Backup_Name: boot
   Backup_Display_Name: Boot
   Storage_Path: /boot
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/system_root | /dev/block/bootdevice/by-name/system | Size: 4921MB Used: 2569MB Free: 2352MB Backup Size: 2569MB
   Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_Available_in_GUI IsPresent SlotSelect Mount_Read_Only
   Primary_Block_Device: /dev/block/bootdevice/by-name/system
   Display_Name: System
   Storage_Name: System
   Backup_Path: /system_root
   Backup_Name: system
   Backup_Display_Name: System
   Storage_Path: /system_root
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/system_image | /dev/block/bootdevice/by-name/system | Size: 5000MB
   Flags: Can_Be_Backed_Up IsPresent Can_Flash_Img SlotSelect
   Primary_Block_Device: /dev/block/bootdevice/by-name/system
   Display_Name: System Image
   Storage_Name: system_image
   Backup_Path: /system_image
   Backup_Name: system_image
   Backup_Display_Name: System Image
   Storage_Path: /system_image
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/vendor | /dev/block/bootdevice/by-name/vendor | Size: 1511MB Used: 384MB Free: 1127MB Backup Size: 384MB
   Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up IsPresent SlotSelect Mount_Read_Only
   Primary_Block_Device: /dev/block/bootdevice/by-name/vendor
   Display_Name: Vendor
   Storage_Name: Vendor
   Backup_Path: /vendor
   Backup_Name: vendor
   Backup_Display_Name: Vendor
   Storage_Path: /vendor
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/vendor_image | /dev/block/bootdevice/by-name/vendor | Size: 1536MB
   Flags: Can_Be_Backed_Up IsPresent Can_Flash_Img SlotSelect
   Primary_Block_Device: /dev/block/bootdevice/by-name/vendor
   Display_Name: Vendor Image
   Storage_Name: vendor_image
   Backup_Path: /vendor_image
   Backup_Name: vendor_image
   Backup_Display_Name: Vendor Image
   Storage_Path: /vendor_image
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/oem | /dev/block/bootdevice/by-name/oem | Size: 371MB Used: 70MB Free: 300MB Backup Size: 70MB
   Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/oem
   Display_Name: OEM
   Storage_Name: OEM
   Backup_Path: /oem
   Backup_Name: oem
   Backup_Display_Name: OEM
   Storage_Path: /oem
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/cache | /dev/block/bootdevice/by-name/cache | Size: 352MB Used: 0MB Free: 351MB Backup Size: 0MB
   Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_During_Factory_Reset Wipe_Available_in_GUI IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/cache
   Display_Name: Cache
   Storage_Name: Cache
   Backup_Path: /cache
   Backup_Name: cache
   Backup_Display_Name: Cache
   Storage_Path: /cache
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/data | /dev/block/bootdevice/by-name/userdata | Size: 22169MB Used: 16518MB Free: 1410MB Backup Size: 16518MB
   Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_During_Factory_Reset Wipe_Available_in_GUI IsPresent Can_Be_Encrypted Is_Encrypted Has_Data_Media Can_Encrypt_Backup Use_Userdata_Encryption Is_Storage Is_Settings_Storage
   Symlink_Path: /data/media/0
   Symlink_Mount_Point: /sdcard
   Primary_Block_Device: /dev/block/bootdevice/by-name/userdata
   Display_Name: Data
   Storage_Name: Internal Storage
   Backup_Path: /data
   Backup_Name: data
   Backup_Display_Name: Data
   Storage_Path: /data/media/0
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files
   MTP_Storage_ID: 65537

/recovery | /dev/block/bootdevice/by-name/FOTAKernel | Size: 64MB
   Flags: Can_Be_Backed_Up IsPresent Can_Flash_Img
   Primary_Block_Device: /dev/block/bootdevice/by-name/FOTAKernel
   Display_Name: FOTAKernel
   Storage_Name: FOTAKernel
   Backup_Path: /recovery
   Backup_Name: recovery
   Backup_Display_Name: FOTAKernel
   Storage_Path: /recovery
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/dsp | /dev/block/bootdevice/by-name/dsp | Size: 11MB Used: 10MB Free: 1MB Backup Size: 10MB
   Flags: Can_Be_Mounted Can_Be_Wiped IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/dsp
   Display_Name: dsp
   Storage_Name: dsp
   Backup_Path: /dsp
   Backup_Name: dsp
   Backup_Display_Name: dsp
   Storage_Path: /dsp
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/misc | /dev/block/bootdevice/by-name/misc | Size: 1MB
   Flags: IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/misc
   Display_Name: misc
   Storage_Name: misc
   Backup_Path: /misc
   Backup_Name: misc
   Backup_Display_Name: misc
   Storage_Path: /misc
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/firmware | /dev/block/bootdevice/by-name/modem | Size: 109MB Used: 89MB Free: 20MB Backup Size: 89MB
   Flags: Can_Be_Mounted Can_Be_Wiped IsPresent Mount_To_Decrypt Mount_Read_Only
   Primary_Block_Device: /dev/block/bootdevice/by-name/modem
   Display_Name: Firmware
   Storage_Name: Firmware
   Backup_Path: /firmware
   Backup_Name: firmware
   Backup_Display_Name: Firmware
   Storage_Path: /firmware
   Current_File_System: vfat
   Fstab_File_System: vfat
   Backup_Method: files
   Mount_Flags: 0, Mount_Options: context=u:object_r:firmware_file:s0

/bt_firmware | /dev/block/bootdevice/by-name/bluetooth | Size: 63MB Used: 0MB Free: 63MB Backup Size: 0MB
   Flags: Can_Be_Mounted Can_Be_Wiped IsPresent Mount_To_Decrypt Mount_Read_Only
   Primary_Block_Device: /dev/block/bootdevice/by-name/bluetooth
   Display_Name: BT Firmware
   Storage_Name: BT Firmware
   Backup_Path: /bt_firmware
   Backup_Name: bt_firmware
   Backup_Display_Name: BT Firmware
   Storage_Path: /bt_firmware
   Current_File_System: vfat
   Fstab_File_System: vfat
   Backup_Method: files
   Mount_Flags: 0, Mount_Options: context=u:object_r:firmware_file:s0

/efs1 | /dev/block/bootdevice/by-name/modemst1 | Size: 2MB
   Flags: Can_Be_Backed_Up Has_SubPartition IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/modemst1
   Display_Name: EFS
   Storage_Name: EFS
   Backup_Path: /efs1
   Backup_Name: efs1
   Backup_Display_Name: EFS
   Storage_Path: /efs1
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/efs2 | /dev/block/bootdevice/by-name/modemst2 | Size: 2MB
   Flags: Can_Be_Backed_Up Is_SubPartition IsPresent
   SubPartition_Of: /efs1
   Primary_Block_Device: /dev/block/bootdevice/by-name/modemst2
   Display_Name: efs2
   Storage_Name: efs2
   Backup_Path: /efs2
   Backup_Name: efs2
   Backup_Display_Name: efs2
   Storage_Path: /efs2
   Current_File_System: emmc
   Fstab_File_System: emmc
   Backup_Method: dd

/mnt/vendor/persist | /dev/block/bootdevice/by-name/persist | Size: 27MB Used: 0MB Free: 26MB Backup Size: 0MB
   Flags: Can_Be_Mounted Can_Be_Wiped IsPresent
   Primary_Block_Device: /dev/block/bootdevice/by-name/persist
   Display_Name: mnt/vendor/persist
   Storage_Name: mnt/vendor/persist
   Backup_Path: /mnt/vendor/persist
   Backup_Name: mnt/vendor/persist
   Backup_Display_Name: mnt/vendor/persist
   Storage_Path: /mnt/vendor/persist
   Current_File_System: ext4
   Fstab_File_System: ext4
   Backup_Method: files

/sdcard1 |  | Size: 0MB Used: 0MB Free: 0MB Backup Size: 0MB
   Flags: Can_Be_Mounted Can_Be_Wiped Wipe_Available_in_GUI Removable Is_Storage
   Primary_Block_Device: /dev/block/mmcblk0p1
   Alternate_Block_Device: /dev/block/mmcblk0
   Display_Name: Micro SDcard
   Storage_Name: Micro SDcard
   Backup_Path: /sdcard1
   Backup_Name: sdcard1
   Backup_Display_Name: Micro SDcard
   Storage_Path: /sdcard1
   Current_File_System: auto
   Fstab_File_System: auto
   Backup_Method: files
   MTP_Storage_ID: 65538

/usb-otg |  | Size: 0MB Used: 0MB Free: 0MB Backup Size: 0MB
   Flags: Can_Be_Mounted Can_Be_Wiped Wipe_Available_in_GUI Removable Is_Storage
   Primary_Block_Device: /dev/block/sdg1
   Alternate_Block_Device: /dev/block/sdg
   Display_Name: USB OTG
   Storage_Name: USB OTG
   Backup_Path: /usb-otg
   Backup_Name: usb-otg
   Backup_Display_Name: USB OTG
   Storage_Path: /usb-otg
   Current_File_System: auto
   Fstab_File_System: auto
   Backup_Method: files
   MTP_Storage_ID: 65539

I:Loading package: TWRP (/twres/ui.xml)
I:Load XML directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/zh_TW.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/zh_CN.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/uk.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/tr.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/sv.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/sl.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/sk.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/ru.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/pt_PT.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/pt_BR.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/pl.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/nl.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/ja.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/it.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/hu.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/fr.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/es.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/en.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/el.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/de.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/cz.xml' directly
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/en.xml' directly
parsing languageFile
parsing languageFile done
I:PageManager::LoadFileToBuffer loading filename: '/twres/ui.xml' directly
I:Checking resolution...
I:Scaling theme width 0.666667x and height 0.666667x, offsets x: 0 y: 0 w: 0 h: 0
I:Loading resources...
I:Failed to load image from indeterminate013, error -1
I:Loading variables...
I:Loading mouse cursor...
I:Loading pages...
I:Including file: /twres/portrait.xml...
I:PageManager::LoadFileToBuffer loading filename: '/twres/portrait.xml' directly
I:Loading resources...
I:Loading variables...
I:Loading mouse cursor...
I:Loading pages...
I:Loading page main
I:Loading page main2
I:Loading page install
I:Loading page flash_confirm
I:Loading page flash_zip
I:Loading page flash_done
I:Loading page flash_sleep_and_reboot
I:Loading page flashimage_confirm
I:Loading page clear_vars
I:Loading page reboot_system_routine
I:Loading page confirm_action
I:Loading page action_page
I:Loading page singleaction_page
I:Loading page action_complete
I:Loading page filecheck
I:Loading page rebootcheck
I:Loading page wipe
I:Loading page advancedwipe
I:Loading page formatdata
I:Loading page formatdata_confirm
I:Loading page checkpartitionlist
I:Loading page partitionoptions
I:Loading page refreshfilesystem
I:Loading page selectfilesystem
I:Loading page backup
I:Loading page multiuser_warning
I:Loading page backup_options
I:Loading page backupname1
I:Loading page backupname2
I:Loading page backupencryption
I:Loading page backupencryption2
I:Loading page checkbackuppassword
I:Loading page backup_run
I:Loading page restore
I:Unable to open '/data/media/0/TWRP/BACKUPS/BH9086U09E'
I:Loading page restore_read
I:Loading page restore_decrypt
I:Loading page try_restore_decrypt
I:Loading page restore_select
I:Loading page renamebackup
I:Loading page restore_run
I:Loading page mount
I:Loading page usb_mount
I:Loading page usb_umount
I:Loading page system_readonly_check
I:Loading page reboot
I:Loading page reboot2
I:Loading page installapp
I:Loading page system_readonly
I:Loading page settings
I:Loading page settings_timezone
I:Loading page settings_screen
I:Loading page settings_vibration
I:Loading page settings_language
I:Loading page copylog
I:Loading page advanced
I:Loading page partsdcardsel
I:Loading page partsdcardcheck
I:Loading page partsdcard
I:Loading page htcdumlock
I:Loading page repackselect
I:Loading page repackconfirm
I:Loading page lock
I:Loading page filemanagerlist
I:Loading page filemanageroptions
I:Loading page choosedestinationfolder
I:Loading page filemanagerrenamefile
I:Loading page filemanagerrenamefolder
I:Loading page filemanagerchmod
I:Loading page filemanagerconfirm
I:Loading page filemanageraction
I:Loading page decrypt
I:Loading page decrypt_pattern
I:Loading page trydecrypt
I:Loading page terminalcommand
I:Loading page sideload
I:Loading page fixcontexts
I:Loading page slideout
I:Loading page select_storage
I:Loading page select_language
I:Loading page decrypt_users
I:Loading page changeTwrpFolder
I:Switching packages (TWRP)
Startup Commands:
ro.boottime.adbd=3262839855
ro.boottime.init=2880
ro.boottime.init.selinux=42
ro.boottime.init.cold_boot_wait=294
ro.boottime.logd=3240154123
ro.boottime.ueventd=2936342947
ro.boottime.recovery=3243357353
ro.boottime.keymaster-3-0=3285673711
ro.boottime.sbin_qseecomd=3263326365
ro.boottime.gatekeeper-1-0=3285201524
ro.boottime.servicemanager=3263773240
ro.boottime.set_permissive=3242896311
ro.boottime.hwservicemanager=3234879123
dalvik.vm.isa.arm.variant=generic
dalvik.vm.isa.arm.features=default
dalvik.vm.isa.arm64.variant=generic
dalvik.vm.isa.arm64.features=default
dalvik.vm.lockprof.threshold=500
dalvik.vm.stack-trace-dir=/data/anr
dalvik.vm.image-dex2oat-filter=verify-at-runtime
debug.atrace.tags.enableflags=0
ro.art.hiddenapi.warning=1
ro.boot.selinux=permissive
ro.boot.baseband=msm
ro.boot.configfs=true
ro.boot.hardware=lilac
ro.boot.keymaster=1
ro.boot.bootdevice=1da4000.ufshc
ro.boot.bootloader=xboot
ro.boot.veritymode=enforcing
ro.boot.usbcontroller=a800000.dwc3
ro.boot.verifiedbootstate=orange
ro.omni.device=lilac
ro.omni.version.security_patch=
ro.twrp.sar=true
ro.twrp.boot=1
ro.twrp.version=3.5.2_9-0
ro.vndk.lite=true
ro.vndk.version=28
ro.wifi.channels=
ro.allow.mock.location=1
ro.build.id=PQ3B.190801.002
ro.build.date=Sun Apr 11 20:36:45 UTC 2021
ro.build.date.utc=1618173405
ro.build.host=93f70f4836da
ro.build.tags=test-keys
ro.build.type=eng
ro.build.user=jenkins
ro.build.flavor=omni_lilac-eng
ro.build.display.id=omni_lilac-eng 16.1.0 PQ3B.190801.002 1 test-keys
ro.build.product=lilac
ro.build.version.sdk=28
ro.build.version.base_os=
ro.build.version.release=16.1.0
ro.build.version.codename=REL
ro.build.version.incremental=1
ro.build.version.preview_sdk=0
ro.build.version.all_codenames=REL
ro.build.version.security_patch=2025-12-31
ro.build.version.min_supported_target_sdk=17
ro.build.description=G8441-user 9 47.2.A.11.228 3311891731 release-keys
ro.build.characteristics=default
ro.bionic.ld.warning=1
ro.kernel.android.checkjni=1
ro.secure=0
ro.treble.enabled=false
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.name=lilac
ro.product.brand=Sony
ro.product.model=G8441
ro.product.device=lilac
ro.product.manufacturer=Sony
ro.baseband=msm
ro.bootmode=unknown
ro.hardware=lilac
ro.revision=0
ro.bootimage.build.date=Sun Apr 11 20:36:45 UTC 2021
ro.bootimage.build.date.utc=1618173405
ro.bootimage.build.fingerprint=Sony/G8441/G8441:9/47.2.A.11.228/3311891731:user/release-keys
ro.bootloader=xboot
ro.debuggable=1
ro.property_service.version=2
ro.actionable_compatible_property.enabled=false
fbe.contents=ice
fbe.filenames=
init.svc.adbd=running
init.svc.logd=running
init.svc.ueventd=running
init.svc.recovery=running
init.svc.keymaster-3-0=running
init.svc.sbin_qseecomd=running
init.svc.gatekeeper-1-0=running
init.svc.servicemanager=running
init.svc.set_permissive=stopped
init.svc.hwservicemanager=running
twrp.user.0.decrypt=0
twrp.crash_counter=0
crypto.ready=1
sys.usb.ffs.ready=1
ro.build.fingerprint=Sony/G8441/G8441:9/47.2.A.11.228/3311891731:user/release-keys
hwservicemanager.ready=true
ro.persistent_properties.ready=true
ro.boot.serialno=BH9086U09E
ro.serialno=BH9086U09E
service.adb.root=1
net.bt.name=Android
sys.usb.state=adb
sys.usb.controller=a800000.dwc3
persist.sys.usb.config=adb
persist.sys.dalvik.vm.lib.2=libart.so
sys.usb.config=adb
sys.usb.configfs=1
ro.vendor.usb.pid_suffix=1F4
vendor.sys.listeners.registered=true
vendor.usb.rmnet.func.name=rmnet_bam
vendor.usb.rndis.func.name=rndis_bam
ro.crypto.type=file
ro.crypto.state=encrypted

I:Is encrypted, do decrypt page first
I:Switching packages (TWRP)
I:Set page: 'decrypt'
I:Set page: 'main'
I:Set page: 'clear_vars'
I:Set page: 'main2'
I:Set page: 'install'
I:Set page: 'main'
I:Set page: 'clear_vars'
I:Set page: 'main2'
SELinux contexts loaded from /file_contexts
Full SELinux support is present.
I:Switching packages (TWRP)
I:TWFunc::Fixup_Time: Pre-fix date and time: 1972-11-13--05-17-29
I:TWFunc::Fixup_Time: Setting time offset from file /sys/class/rtc/rtc0/since_epoch
I:TWFunc::Fixup_Time: will attempt to use the ats files now.
I:TWFunc::Fixup_Time: Setting time offset from file /data/vendor/time/ats_2, offset 1552783865350
I:TWFunc::Fixup_Time: Date and time corrected: 2022-01-27--06-08-34
I:Path /cache/recovery/log.gz does not exist. Unable to copy /cache/recovery/last_log.gz
I:Attempt to load settings from settings file...
I:InfoManager file '/data/media/0/TWRP/.twrps' not found.
I:Backup folder set to '/data/media/0/TWRP/BACKUPS/BH9086U09E'
I:Copied file /etc/recovery.fstab to /cache/recovery/recovery.fstab
I:Version number saved to '/cache/recovery/.version'
I:Unable to mount '/sdcard1'
I:Actual block device: '', current file system: 'auto'
I:Unable to mount '/usb-otg'
I:Actual block device: '', current file system: 'auto'
I:TWFunc::Set_Brightness: Setting brightness control to 1600
I:PageManager::LoadFileToBuffer loading filename: '/twres/languages/en.xml' directly
parsing languageFile
parsing languageFile done
I:Translating partition display names
I:Backup folder set to '/data/media/0/TWRP/BACKUPS/BH9086U09E'
I:Switching packages (TWRP)
I:Set page: 'system_readonly'

```

# Answer
You have TWRP so first create backup of whole `userdata` partition with `adb pull`
(Note: backup is encrypted and useless outside of source phone)

```
adb pull /dev/block/bootdevice/by-name/userdata

```

If your TWRP support encryption you can just *"unlock"* (decrypt) phone from command line and backup plain `userdata` partition instead

```
adb shell twrp decrypt '1234'
adb pull /dev/block/dm-0

```

It will take up to 1 hour and requires several GB disk space on your NTFS or ext4 formatted hard disk. This step is optional and backup can deleted from PC afterwards, it is not required.

Instead full disk image consider using twrp adb backup. This backup does not include your emulated Internal Storage. Pull pictures and music from `/sdcard` yourself

```
adb backup --twrp --compress data
adb pull -a /sdcard

```

---

If your `/data` partition is accessable you can enable usb-debugging via Magisk startup script in /data/adb/service.d
(settings vary on android version)

```
cd %userprofile%
adb push .android\adbkey.pub /sdcard
adb shell
echo '#!/system/bin/sh
      sleep 15
      settings put global development_settings_enabled 1
      settings put global usb_mass_storage_enabled 1
      settings put global adb_enabled 1
     ' > /data/adb/service.d/adbguard
chmod 0755 /data/adb/service.d/adbguard

```

and authorize your computer RSA key `adbkey.pub` "offline" (this flashable.zip can do it, too)

```
cat /sdcard/adbkey.pub >> /data/misc/adb/adb_keys
chmod 0640 /data/misc/adb/adb_keys
chown 1000.2000 /data/misc/adb/adb_keys
chcon u:object_r:adb_keys_file:s0 /data/misc/adb/adb_keys

```

---

Otherwise modify `/system_root/prop.default`, `/system_root/system/build.prop` or whatever until you got `scrcpy` to work (you can try that update.zip for this)

---

Next, boot into android and check `adb devices` you should be able to control your phone screen from PC with `scrcpy` now. please note `scrcpy` comes with it's own `adb.exe` \- please delete it to avoid losing `adbkey.pub` (scrcpy will use adb.exe from platform-tools instead after you added `platform-tools` directory to `%PATH%`)

---

Finally, install MyPhoneExplorer and backup your SMS. you can restore to different phone by copying the files into proper directory and restore it -\> *"In original storage"*

```
%UserProfile%\AppData\Roaming\MyPhoneExplorer\<device>[<IMEI>]\SMS.dat
%UserProfile%\AppData\Roaming\MyPhoneExplorer\<device>[<IMEI>]\SMSArchive.dat

```
> 0 votes

---
Tags: sms, data-recovery, screen, lineageos, usb-on-the-go
---


# Question
Title: What does this VPN prompt message "VPN app can monitor your network activity, including emails, apps and websites" mean?
When connected to a VPN in Android 11, the following prompt message appears

> \[VPN app\] can monitor your network activity, including emails, apps and websites

What does this mean exactly? The VPN provider can see everything I do on the internet? See what messages I send on messaging apps? See which URLs I visit? Also, see which email address I send an email to?

# Answer
When using a VPN system there are two points that can read all the data that pass the VPN tunnel:

1. The entry point - in this case the app that establishes the VPN tunnel
2. The exit point - if the app connects to a VPN server/endpoint on the Internet then this endpoint can see all traffic between your device and the internet.

Both points can see all data that has not been protected e.g. by using HTTPS or a similar protected protocol. Especially the traffic used for resolving domain names to IP addresses is often still unencrypted and a small part of the HTTPS header which contains the domain name is often not encrypted as this only possible with TLS 1.3. So the VPN server and the app may know the servers you are communicating with.

On Android there are some apps that do not connect to an VPN server on the internet, instead entry and exit point are within the app and then the traffic passed to the used mobile network or Wifi connection.
> 2 votes

---
Tags: notifications, vpn, android-11
---


title: Desktop Firefox on Android

text:
# Question
Title: Desktop Firefox on Android
Is it possible to run the full desktop Firefox on Android somehow?

Since the UI rewrite, Firefox Mobile is lacking quite a few features and is really bad to use on a device with a bigger screen (tablet), since they completely scrapped the tablet UI.

I don't really want to have it running in a Linux container (which I already have), but recompiled natively.

# Answer
Even if Android bases on Linux and theoretically could be able to execute the ARM v7/v8 version of Mozilla Firefox for Linux there are multiple problems:

1. the libraries available on Linux and Android differs a lot
2. The whole UI system on Linux using Wayland/X-Window manager is non-existent on Android. So Firefox would be unable to present you an user interface nor render web pages to the screen.

Especially the second point explains why you can run Desktop Mozilla Firefox in some sort of container but not directly on Android.
> 1 votes

---
Tags: browser, firefox-for-android
---


# Question
Title: How to get an overview of which app are allowed to background data for Android 7
A user can enable or disable background data usage by following the following steps:

1. From the Home screen, tap the app slider, then open "Settings".
2. Select "Data usage".
3. Select "Cellular data usage".
4. Select the app you want to limit background data on.
5. Toggle "Background data" to "On" or "Off" as desired.

The question is - is there anyway to do it on a mass scale for all apps so that a user do not need to keep repeating the five steps as described above?

Example, a user just need to follow the following steps:

1. From the Home screen, tap the app slider, then open "Settings".
2. Select "Data usage".
3. Select "Background data usage", which will list all the apps. Each row will display the app name, the app version and a "On/Off" switch. If the app was "On" for background data, it will be a "On" for that switch.
4. Toggle "Background data" to "On" or "Off" as desired thru scrolling on the same page.

(Step 3 should look something like the picture below, which the picture illustrate which WIFI to be "On" or "Off" as a metered Wifi network.)

# Answer
Not sure about GUI interface you want or a third party app that may do this for you, you can use CLI (terminal app or `adb shell`):

```
~$ dumpsys netpolicy | grep '^[ ]*UID=.*METERED_BACKGROUND'
  UID=10173 policy=4 (ALLOW_METERED_BACKGROUND)
  UID=10176 policy=1 (REJECT_METERED_BACKGROUND)

```

File `/data/system/netpolicy.xml` can also be read directly with root access.

```
~# awk '$2==10173 || $2==10176 {print $2,$1}' /data/system/packages.list
10173 com.whatsapp
10176 com.simplemobiletools.gallery.pro

```

Or:

```
~$ pm list packages -U | sed 's/package://; s/uid://' | grep -E '10173$|10176$'
com.whatsapp 10173
com.simplemobiletools.gallery.pro 10176

```

It shows that `WhatsApp` has `Unrestricted data usage` allowed, while `Gallery` app is denied `Background data` usage at all. Rest of the apps have default behavior i.e. they can use background data but not in Data Saver mode.

You can do some further scripting with aapt tool to get e.g. app label / name.
> 3 votes

# Answer
FWIW, in the UI, if you go to the Settings screen that lets you control special app access permissions (WiFi control, device admins, modify system settings, unrestricted data, etc.) under unrestricted data access, the toggle will not be available for any apps you've restricted background data on. I check here to see if I'm missing any apps that I had overlooked toggling individually.
> 0 votes

# Answer
I was looking for the same thing to disable ads for offline apps. I'm not sure about 7.1 Nougat, but I just found background access control for Android 9 (Pie): **Settings =\> Wireless & networks =\> Data usage =\> Network access =\>**...

Here you can see the permissions for Wi-Fi and mobile data access. **However, that does not include background data!** To see background data and roaming data access you need 1 more step:

**At the top, there's a downward pointing arrow next to network access - choose "Advanced network settings"**. This opens a new list with all apps and checkboxes only for background data and roaming data.
> 0 votes

---
Tags: applications, 7.0-nougat, mobile-data, 7.1-nougat, background-data
---


title: Access OTG directory via wifi adb

text:
# Question
Title: Access OTG directory via wifi adb
I got my PC external storage port blocked.

However, there are some large files in my external drive that I need to transfer, and using cloud service is out of option.

I can use my phone to transfer files using adb, and I can connect to adb via wifi too. But since the files are in external drive, I will need to transfer it to my phone before I can transfer to my PC. It would be convenient if I can access the external drive directory when it connected to my phone via OTG. I try search `/storage` directory after connecting my OTG drive, but it only shows my local phone storage and my sd card.

Is it possible to to this?

Edit: Sorry if my question is a bit unclear here. I can access the files in my OTG drive in my phone using file manager. What I cannot do is access it via adb from my pc (I use adb connect to my phone from pc using wifi). I wish to be able do `adb pull <otg-files>` directly from my PC without have to copy the files from my OTG drive to my phone and then pull it via adb.

# Answer
> 3 votes
There are multiple potential problems that prevent the phone from seeing your external drive:

1. The phone has to support USB OTG at all. I would recommend to test that using an simple USB stick.
2. Power - If the external drive is an HDD then most likely the power provided by the phone via USB is too low and you need to play an active powered USB hub in between.
3. The file-system used on the external drive: The file-systems supported by all Android systems is very small when it comes to file-systems usually used on external drives. If your PC is running Windows, then the external drive most likely uses NTFS, exFAT or FAT32. Only the latter is supported by all Android devices, exFAT is supported by some devices and NTFS is only supported by a very limited number of devices.

If you can see the external drive data in an app on the device you only have to find out the mount point. The fastest way is to list all mount points by executing `mount` in the shell via adb.

On my devices OTG devices are mounted in a directory within `/mnt/media_rw/` for example `/mnt/media_rw/9E00-B16F`. Unfortunately the directory `/mnt/media_rw/` is not accessible via adb on my device.

---
Tags: adb, wi-fi, usb-on-the-go
---


# Question
Title: How to fix Huawei P30 "Getting Package info Failed Error"?
I am trying to fix my Huawei P30 (Android 10) which gets stuck in recovery mode. I tried to fix it by using eRecovery but I get the error "Get Package info failed".

Around the internet, I was told to flash a new ROM to solve this problem, but there is no tutorial for flashing stock ROMs for Huawei P30 on the internet. My Huawei P30 does not have an SD Card slot meaning I can't use the method of adding `update.app` to `/dload` folder on an SD card.

I also cannot use ADB fastboot because the Huawei on Android 10 does not have the image files required (`boot.img`, `recovery.img`, etc.) Instead, it has a myriad of images like `Super.img`, `Ramdisk.img`, `erocovery.img`, etc. I don't know which ones to select because I am unable to find a tutorial on the internet that tells me which files to select.

I also cannot use the SP Flash Tool because Android 10 stock ROMs do not have scatter file XML or txt (it has `update.app`)

I am unable to use SigmaKey as well because of the "SmartCard resource manager not running" error (I'm on Windows 10)

I have exhausted many options with no luck, please help me.

# Answer
Hold the volume up button and put the charger in. When it turns on, release it, reset it, type yes, scroll up with the volume button, press the on and off button after scrolling down with the volume down button. After that, go to reboot.
> 0 votes

---
Tags: rom-flashing, unbricking, huawei, android-10
---


# Question
Title: How to migrate all your contacts between two providers on android?
Suppose I'm using an android phone running stock Android 6.0. Suppose further there are about 100 contacts and about 50 of them are with provider P and the rest is with provider G (as displayed by the default Google-Contacts app).

Now what I want to do is to *move* all the remaining 50 contacts which are still with G to P so I have every contact once and stored and synced with provider P.

**How can I do this, preferably using only my phone?**

Now I'd do this manually using the Contacts-App but it won't allow me change the storage provider for an established contact.

For clarification: the phone in question is a Nexus 5, provider G is obviously google using the device-default google account and provider P is posteo which is registered to Android as a "calendar service provider" via DAVDroid.

# Answer
> 3 votes
To do that natively only using your phone, you'd need to either manually enter all those 50 contacts to the new provider, then drop the old entries.

You might also be able to export all your contacts to SD card (using the contacts/people app: *Menu › Export/Import › Export to SDCard*), edit the resulting file, and import it back again – but that might be error prone.

An easier approach would be using a third party solution, like Simpler Contacts Backup – which directly lets you move contacts between accounts, according to the app's description.

# Answer
> 2 votes
What still works with the Android 11 Contacts app is the following:

1. go to Settings -\> Export ... - just select the G contacts provider for export - take note of the filename - say - `contacts.vcf`
2. go to Settings -\> Import ... - select P contacts provider as import destination and select the previously exported file `contacts.vcf`
3. in the main view, select just the G provider via the menu in the top right corner
4. Select all via the  (vertical elipsis) top right menu
5. Delete all via tapping the trash can symbol

End result: all remaining G contacts are moved to the P contacts provider

There is no need to edit the exported `.vcf` file, since you want to move *all* remaining G contacts.

---

Editing would only be necessary if you want to split/filter/edit the exported contacts into multiple files before importing (only a subset of) them again. This isn't a big deal if you have a real text editor, since the format is relatively straight forward, as long as you just (re-)move complete `BEGIN:VCARD`/`END:VCARD` blocks, edit plainly encoded field values or completely remove fields.

---

Note that it's advised to re-import the contacts via the same app that you've used to export them since many VCF implementations are known to have compatibility issues with each other.

See also for example:

> Do not use the .vcf files exported by Android's Contacts app for any other purpose than importing again to the same Android Contacts app! Those .vcf files are using an ancient vCard format (vCard 2.1) and contain syntax errors. There are good chances that contacts will be corrupt when you try to import these .vcf files anywhere else.

DAVx5 DAVcal/DAVcard Android provider app FAQ

# Answer
> 0 votes
Another good app for older android versions is MCBackup - My Contacts Backup. You can use this in conjunction with a file manager like Total Commander - file manager. This will allow you to save the contacts as `.vcf` on the local file system. From there you can transfer it by **SDcard** or `adb pull/push`.

You can also **text**, **bluetooth transfer**, and **Email** the contacts to yourself.

The backup directory is:

```
/data/user/0/com.globile.mycontactbackup/files/backups

```

A solution that works with Android 10 is Super Backup & Restore. Simply install the app on the backup phone, make a backup. Install the app on the new phone, and restore using the `.vcf`.

---
Tags: contacts
---


# Question
Title: How to remove quick links in Chrome for Android homepage?
>

How do I remove these quick links from Chrome for Android app?

# Answer
To remove one at a time:

1. Long-press on a link ( I think the correct name is shortcut).
2. When a menu appears, click Remove.

To remove all:

1. Click on the 3-dot, then Settings.
2. Click on Home page, enable it if it was disabled.
3. Click on "Open this page". Enter `about:blank` or any website you would to open when you open Chrome. You might have to restart Chrome for the changes to take effect.

However, they will re-appear again based on the history.
> 4 votes

# Answer
Go to Play Store and uninstall Chrome. It will uninstall the updated version. Then go to your Chrome. Shortcuts never appear again. You can update Chrome. 100% true solution, fixed my own Chrome.
> 0 votes

---
Tags: chrome-for-android
---


# Question
Title: Any OpenSource SOCKS proxy server for Android?
I am looking for a SOCKS proxy server I can run on my Android phone. I could only find some commercial apps, but would prefer a FOSS alternative.

It does not need to be an app: a binary I can run from `adb shell` would work as well, but I'd prefer it if it does not require root.

# Answer
# Use SSH!

You can use the FOSS application SimpleSSHD for this! You can get it directly from that link, the Google Play Store or using the F-droid app store on your phone.

Once setup you can connect to your device using either your LAN or WAN IP from your PC like this:

```
ssh -D 8899 <PHONE-IP> -p <SSD PHONE PORT>

```

The `-D` option sets up `a local "dynamic" application-level port forwarding`, which essentially makes ssh act like a SOCKS5 (SOCKS4 is supported as well) proxy server. SimpleSSHD will show the IP, selected port and password.

After this, you can set your proxy to `127.0.0.1:8899` on your PC. I've tested it with curl:

```
curl --socks5 127.0.0.1:8899 https://myip.is

```

And it worked! Note that I did not even need root for this, it worked as the normal android user.

Note that if you want to use your mobile network for this your cell provider might not let you connect to SSHD using the WAN IP. A VPN can circumvent this if necessary.
> 3 votes

# Answer
If you want to get a SOCKS proxy of your mobile Internet, you can connect it over USB.

1. Go to developer settings, enable USB debugging
2. Connect USB cable
3. Install `adb`. In Debian, this is `sudo apt install adb`
4. Forward the port 2222 by doing `adb forward tcp:2222 tcp:2222`
5. Start the `sshd`
6. Set up proxy by doing `ssh -D 8899 127.0.0.1 -p 2222`, where 8899 is the desired port of your proxy.
> 0 votes

---
Tags: proxy
---


# Question
Title: How to disable work Outlook notifications until the next morning?
Just installed my working Outlook on my phone and now I want to disable the notifications for this app until tomorrow, 9:30 in the morning. I really do not need to be notified for every email that someone sends me after business hours. However, the problem is that the maximum time I can snooze the notifications for seems to be 2 hours.

How can I disable them for a longer period?

# Answer
I think the Android Work profile is a perfect solution for this case.

First you would need to set it up such that your work Outlook account (and app) is under your work profile. After that you can schedule your work profile to "pause" at certain times.

When your work profile is paused, it will not send any notifications.
> 1 votes

---
Tags: notifications, outlook
---


# Question
Title: SD Card doesn't show up after attempting to format as internal storage from stock crDroid Android 10 Files app
After attempting to format my SD card as internal storage for Samsung Galaxy Tab S 10.5 LTE (SM-T805) using the preinstalled Files app on crDroid (Android 10), it is no longer recognized by my device. I believe it is now completely corrupt, as even Windows is unable to read it after attempting to use an SD card adapter. It's not even listed in the disk management program.

Please help as I was dependent on my SD card as I only have 16GB on this device.

Edit: after formatting it in twrp it shows up in my device however im still not able to format as internal as some java error comes like i said before...

# Answer
> 0 votes
All fine. That is per design. Once formatted MicroSD Card as adoptable-storage, it becomes part of your Internal Storage and will disappear. Because it is an encrypted file system, no PC card reader can detect it.

---
Tags: internal-storage, sd-card, android-10, samsung-galaxy-tab-s-10.5
---


# Question
Title: How to see at what time an SMS was sent?
My phone runs Marshmallow.

When I recieve an SMS, the messaging app only shows me the time at which the message was recieved locally on my phone. There are various circumstances in which this time can vary greatly from the time at which the message was sent by the sender, for example, if my phone was in airplane mode when the message was sent.

I know that this information is made available by my carrier, because there are phones out there that show when the message was sent.

How can I show this information on Android Marshmallow?

I've tried searching the web for this. I found an app that claims to do it, but it only works on Kit Kat and older. The rest of the results I trawled through were mostly forums with people discussing the issue. I did not see any of the posts present a working solution.

# Answer
> 6 votes
Download and install the application Android Messages made by Google LLC. This app replaces the standard Message app. To see the time an SMS/message was sent, just push and hold a finger on the message and press on the information icon that appears. In my case (OnePlus 5T, Android 8.0.0) I could even check messages that I had received before I got the app.

Source: Android Forums - Text Messages ACTUAL Time Sent

# Answer
> 1 votes
There's a messaging app called Textra SMS. It allows you to see the time the message was sent. All you have to do is tap on a message (tap, not long press) and press the 'info' icon, and it will give you the details.

I am not sure where this app gets its information from and therefore I cannot vouch for its accuracy. I believe that you can only see the details for messages that you received after downloading Textra.

# Answer
> 0 votes
GO SMS Pro provides you with the time the message was sent, but the free version has some ads. This is a helpful feature if your phone is off or in airplane mode.

# Answer
> 0 votes
In the default messages app, hold down the message in question until it's highlighted, then touch the three dots in the upper right corner. Select "view details," and it will display both the time the message was sent and the time it was received.

# Answer
> 0 votes
On my LG Rebel (LGL44VL), I can open the message then touch and hold my finger on the screen and it will give an option for "Details." This includes time sent as well as time received.

# Answer
> -1 votes
Set Samsung Messenger as your default messaging app. It has the date above the messages.

---
Tags: sms, date-and-time
---


title: Hiding root from banking app in 2021

text:
# Question
Title: Hiding root from banking app in 2021
Can't use my banking app **nor** pass safetynet

Completely Hid the banking app, and *google store*, and *google services* on *Magisk hide*. Also tried **a few relevant *Magisk* modules:**

* Magisk Hide props config (default)
* Systemless host (default)
* Universal SafetyNet fix 2.1.1
* Riru framework
* Riru Unshare
* Riru MomoHider

**Relevant Xposed modules:**

* RootCloak
* SudoHide
* XprivacyLua
* Bancontact RootBypasser

Also tried *Island*, and applying those modules above to the isolated app. No deal

Can't disable OEM unlock, or else TWRP is blocked by some FRP

What else can be done ?

```
Samsung G935F
Lineage OS 15.1 (Oreo 8.1)

```

Same use to happen before, with S7's original ROM

**Important:** I have other Xposed/LSPosed modules that I **need**:

* ExSDCard Access Enabler (Magisk)
* App Locale 2
* Lucky+Patcher
* Jasi Patcher
* Disable-FLAG\_SECURE
* Greenify
* Secure Settings
* AFWall+

**And apps:**

* Titanium backup

---

**Second part of the question:**

How can I tell HOW the app detects root ?

So I can possibly patch the leak... Block services... Make XprivacyLua more effective

Maybe this second part is the most relevant here

---

**Third (optional) question:**

Are there any updated news regarding this cat and mouse fight ? Is someone working against this hardware verification ? Having breakthroughs ?

# Answer
You don't need all of those modules and apps (though XprivacyLua is needed)

**I can totally understand your situation so I'll explain what i did for myself. Just follow step by step and it'll work.**

First things first, remove every magisk module (incuding systemless hosts,Unshare and Momohider - yes we dont need that) **except Riru CORE framework.**

Also remove whatever xposed module you've installed except XprivacyLua (also you should be using riru lsposed, not xposed)

Now install Riru - LSPosed, Universal safety net fix 1.2.0 (not 2.1.0)

Now follow relevant parts of this guide.

DO reset data of Play services, Play store and Google Services Framework.

Reboot and safetynet should pass.

Feel free to comment any doubts
> 2 votes

# Answer
You should try uninstall titanium backup. Once one of my banking app detected TB and stopped working. After uninstalling TB I was able to hide root from that app
> 0 votes

---
Tags: magisk, xposed-framework, safety-net, lsposed
---


# Question
Title: Tasker JavaScriptlet prepending "undefined" in String
I maintain shows, and films from several platforms within an OrgMode File. Now the string you get when sharing from netflix has unnecessary information.

I get rid of that with Tasker and a Java Scriptlet.

```
var endName = astext.search(" auf Netflix gesehen?") -1;
var text = astext.slice(15,endName);
endName = endName+24;
var replacer = astext.slice(0,endName);
var link = String(astext.replace(replacer));

```

With `astext` as input source from AutoShare Netflix Toast Interception.

So far so good, but as I have actually never used JavaScript before I get to a problem I don't really understand.

Infront of my string stored in `link` there is "undefinded" prepended. I don't really know if I mess up JavaScript syntax or if there is something special with the interpreter Tasker is using.

This also happens if I instead of "resharing" the link simply print it out via `Flash` Task in Tasker

# Answer
> 0 votes
I don't have experience with scripts in Tasker but if it uses common JavaScript then you should be able to remove the text before the URL easily using this script:

```
var idx = astext.indexOf("https://");
var link = astext.substring(0,idx);

```

First search for the string `https://` and save the start index. Then cut everything away from start to the saved index.

---
Tags: tasker, javascript
---


# Question
Title: Motorola Photon Q AT&T HD Voice support?
I have a Motorola Photon Q unlocked and running lineage. It's a 4G LTE phone and yet I'm told that it won't work after the February 22nd 3G sunset because it "doesn't support AT&T HD Voice". This is a requirement that was never mentioned to me before. Previously, all I had been told was it had to be 4G LTE.

So, is there a way to make this phone capable of using AT&T HD Voice? Or at the very least trick it into thinking it's capable? I need this to work and I'm running out of time and options.

# Answer
> 2 votes
Please read the very comprehensive article about AT&T 3G shutdown + VoLTE requirement: T-Mobile will require VoLTE for all phones starting January 2021, AT&T to follow suit in February 2022 – Here’s what that means for you

The most important part is that AT&T simply uses a white list of phones they have decided to support. Other phones they simply don't care about.

> Since AT&T whitelists devices for VoLTE compatibility, you won’t be able to BYOD to the carrier starting February 2022 unless the carrier changes its practices or whitelists a lot more devices. There’s no reason they can’t—VoLTE is a standard protocol, after all—but thus far they haven’t.

Hence effectively it doesn't matter if you phone supports VoLTE and AT&T HD Voice, unless the phone is on their whitelist they will not allow you to activate the phone. For existing phones it is unclear if they will work but if you ask AT&T they will simply tell you it won't work because it is not on their list.

So you have three choices:

1. Believe AT&T and get a new phone
2. Keep your phone and try it out
3. Get this customer-unfriendly company what it deserves and switch to a provider that don't domineer over it's customers.

---
Tags: lineageos, att, motorola-photon
---


# Question
Title: Keyboard connected via USB OTG writes wrong characters
I have keyboard+mouse combo connected via USB A -\> USB C reduction. Mouse works as expected, but keyboard writes wrong characters (it starts in second line see below).

I tried two different USB combos (from different manufacturer - Logi(tech), Yenkee) and both produce same result.

It's Asus stock Android 11, system language is English, SW keyboard is SwiftKey (QWERTZ, EN+CZ), also I use Bluetooth keyboard Logitech K840 which works as expected.

````1``2``3``4``5``6``7``8``9``0``-``=`

`ˋ1234567890-=`

`Q``W``E``R``T``Y``U``I``O``P``[``]`

`qw`rty¨ˆop[]`

`A``S``D``F``G``H``J``K``L``;``'`

`aßdfghjkl;'`

`Z``X``C``V``B``N``M``,``.``/`

`zxçvb˜m,./`

# Answer
> 1 votes
The problem is no layout selected for physical keyboard - it's set for each keyboard separately in `Settings` \> `System` \> `Languages & input` \> `Physical keyboard` \> `[Select your keyboard]` \> `[Select a layout from a list]`

---
Tags: keyboard, usb-on-the-go
---


# Question
Title: OTG USB devices not detected anymore on Xiaomi Redmi Note 7 but can charge the phone and share files with computer
I noticed that either USB key or the Razer Kishi gamepad where undetected by my device although it did work some time ago. It may be related to an update or a material problem, I don't know. I tried the devices on both my computer and other android devices and they are perfectly detected.

I have no setting to toggle on Settings \> Additional Settings, while I saw on the internet that OTG devices have a setting to toggle on for OTG.

See attached picture for the specs of my phone.

Is there any way to confirm whether it's a software issue or a physical issue ? And would anyone know which steps to take in either case ?

EDIT: Extra information provided:

# Answer
If your phone works on a charger and a PC then a general physical problem of the phone is unlikely. The most probable problem source is an software update.

## USB-C hardware issue

But there is one exception: I assume the phone has an USB-C connector which is by definition reversible. This is implemented by providing all connectors twice.

So if one of the connectors is damaged than it may still work but only in one direction. Additionally there are devices (and USB-C cables) known that have by design problems with this reversibility, they fail to detect USB devices in both directions or have other problems in one direction.

Therefore please when connection USB devices to the phone always check both directions of the USB-C plug just to make sure.

## Software issue

There are several apps to be found in Play Store that check the OS for OTG support. Not sure if there is an app that works for your phone and Android version, but I would give it a try.
> 1 votes

---
Tags: xiaomi, usb-on-the-go, bugs, redmi
---


title: Stream music as if it was a phone call

text:
# Question
Title: Stream music as if it was a phone call
I have a car that handles Bluetooth and that plays on the car speakers my phone calls, but doesn't play my music.

Would someone know a trick or an app that would simulate a phone call and redirect the music sound stream as it was the caller stream?

# Answer
I tested a similar App 'Blue Mono sound' github & opensource. I connected the BT to my car, then launched the music, then this App. After playing with the sound volume I finally got the music on my car speakers. YAAATAAA! Thanks for your input
> 0 votes

# Answer
I read that BTmono is an app that does that kind of thing, but I had no success using it in my car with a Galaxy S7 Edge.

Without any app, I noticed that sometimes after ending a call the car keeps hanging on the the BT stream allowing Google Map's navigation directions to be announced through the car speakers treating it like an in-call sound. But I'm guessing that's probably a bug with the software in the car's entertainment system.
> 2 votes

---
Tags: audio, calls, bluetooth-audio, streaming
---


# Question
Title: Can I manually rotate my phone while auto-rotation is disabled?
Android has a nifty feature to disable auto-rotation... Is there some sort of gesture or key combination to rotate your screen? (Say I am in a browser and want to rotate). The idea is to be on auto-rotate = off (mostly desired) and manually change the *orientation* when needed without exiting the application (preferably).

# Answer
> 12 votes
I use Quick Settings and there's an option to toggle auto-rotate. I have it so the shortcut to Quick Settings lives in my Notification bar so to toggle it requires a swipe, two taps and the back button to toggle it and get back to the app I was in.

If you wanted to reduce this down to `tap home, toggle, tap return` if you use QuickDesk which lets you put widgets on it's popup launcher.

I'm sure you could probably set it up as a sortcut in Gesture Launcher but I never had any luck with that app. All it does is force close for me.

**Edit:** Sorry, misread you question. I don't know of any app that does that and I looked around but came up empty. Personally, that would actually be the ideal behavior of the screen orientation and while I'd have no idea how to make it, it can't be that hard. I'd recommend asking around at the XDA forum. Hopefully someone there may know or maybe one of the devs there will make an app to do it.

# Answer
> 4 votes
You can use Tap'n'Turn. It shows a small arrow on the screen when it senses that the orientation changes. Pressing it will rotate the screen even when auto-rotation is off.

> Instead of rotating the screen right away, it displays an icon which allows you explicitly adjust the orientation

It can also be found on F-Droid (where it is written with spaces: *Tap 'n' Turn*).

# Answer
> 3 votes
**UPDATE**: As of Jan 2022, the developer of GMD GestureControl tool removed the app from Play store. Thanks @AndrewT. for the tip. I don't use Android anymore, so answer below stays the same for history purposes.

* * * * *

I don't know any way to do it by system tools. However, I know couple of apps, which will let you complete this task. **You need root access**. Here is what I have: Ultimate Rotation Control and GMD GestureControl Lite. GestureControl lets you tight almost anything to any gesture. And URC has an ability to share switches of orientations of screen as "Actions". So you're going to GMD and make new gesture and tie it to "Action" — any desired orientation from URC.

P.S. You need root to use GMD because, AFAIK Android has no another way to set system-wide gestures.

# Answer
> 2 votes
Since you've said toggling auto is fine, you can just use the quick settings pull-down in Jelly Bean and later. Hold the phone in the orientation you want, then pull down the settings tray, and turn auto-rotate back on. When it's rotated, turn it off again right away.

You can even use it on phones that don't have the stock settings tray, if they have a replacement. Samsung phones are an example of this: instead of two trays, they have one notification panel with "quick access settings" at the top. You can configure which settings are shown, and auto rotate is one of the options.

# Answer
> 2 votes
Rotation Quick Setting works well and is GPL with source code on GitLab.

# Answer
> 0 votes
I don't think so. If your auto-rotation is off, only the application which you are running can force the screen to rotate programmatically. You can do this with code but only for your application not for others.

One good example is YouTube, if you start YouTube in portrait mode and even if your auto-rotate option is disabled, you can click on a button to watch the video on landscape mode.

# Answer
> 0 votes
You can do this with Tasker. Here's a small tutorial

In your profiles screen, click the + button and select application. In the following screen that shows with the list of your installed apps, choose the app that you would wish to turn the Orientation lock to off when opened.

Go back and you will be asked to create a new task. Create one and add the action Display Rotation and set it to on.

Now go back and long press on the task you created and click 'Add exit task' do the same thing as you did before but instead of setting it as on, set it to off.

So now, whenever you open the app that you've chosen (Browser), you can switch to landscape mode and at other times stay locked with whichever orientation you leave the app with.

# Answer
> 0 votes
I think in Android 11 you can do that. When you rotate your phone, a small icon will show up. You can click it to rotate your screen.

# Answer
> 0 votes
Actually, in my Vivo Iqoo 7, near the home button, there used to be a small rotation arrow pop-up when I rotate my phone after disabling auto-rotation. After the update, it disappeared.

---
Tags: screen, auto-rotation
---


# Question
Title: ADB not finding device with Galaxy S8 and Windows 7
I'm trying to get my Galaxy S8 to work with unity for gear VR development but I cannot seem to get ADB to find the phone.

I've enabled USB debugging in development options and also have the latest version of Android Studio and the SDK, I've also installed the Android 7.0 package in Android Studio and the windows USB drivers from that, I've also reset both the phone and computer after one suggestion, one person even suggested updating the USB drivers for the phone in device manager on windows to the drivers(Android\_winusb) in the SDK folder but it says it cannot find any relevant drivers, also have tried adb kill-server and adb start-server.

Nothing I do seems to help at all. Also I really don't want to have to root the phone as that voids any warranty but from everything I've read there's no need to do that in order to get this working.

# Answer
> 3 votes
I suggest you to connect your phone to your PC, and on your computar to go on Device Manager in control pannel and remove devices related to your smartphone.

Then, disconnect the smartphone from you PC.

Restart your PC and your phone.

Connect again your Phone to your PC.

Another try: Simply disable USB Debugging, while connected to PC. Re-enable It and connect to your PC.

# Answer
> 2 votes
What worked for me was to go to Settings -\> Developer Options -\> Revoke USB debugging authorizations in my Galaxy S8+.

# Answer
> 1 votes
Yep I forgot a step. You have to "enable developer options" then go to "developer options" on the (S7 in my case) and enable "USB debugging".

# Answer
> 0 votes
Google Driver works for Nexus, HTC, etc. For Samsung, I needed to find the correct SAMSUNG drivers and install them manually.

As long as:

* The appropriate SAMSUNG driver has been manually installed
* The device is in developer mode and
* USB debugging is active on the device

The PC should pick up the phone in ADB (when the PC has correctly recognised the phone, you should have a message on the Samsung device asking you to trust it). When the device trusts the PC, and the correct drivers are installed, it should show up in `adb devices`.

# Answer
> 0 votes
If you have a new MacBook (2016 and newer) and are having this problem, make sure to try using all available USB-C ports. I believe only the Thunderbolt-capable ports will recognize the phone.

# Answer
> 0 votes
For anyone else that runs into this issue (I was struggling with this for weeks, before I found this tip...) Try to use a USB2 port instead of a USB3 port. That worked for me. (Samsung Note 8, Windows 10.)

---
Tags: google-play-store, adb, 7.0-nougat, android-sdk, samsung-galaxy-s-8
---


# Question
Title: How do I update the emoji set for standard messaging applications?
I have a basic compatibility problem with emoji: the emoji available on one Android device (Android 8.1) do not match those available on a second (Android 6.0?) in applications including the SMS messaging application or Google Hangouts. Some emoji show up as blank boxes on the receiving end.

Is there a way to update the older Android device to include newer emoji? Assume that the messaging applications such as Google Hangouts have the latest updates for their respective platforms and that the receiving device is a normal end user device that is not rooted.

# Answer
I had the same issue recently.

From what I gathered, emojis and non-emoji codepoints in Android are stored in separated font files. Regular chars and any non-emoji symbols come from the system fonts, which can be edited on some systems. Emojis, on the other hand, seem to come from a static file named "NotoColorEmoji.ttf". The latest version of this font can be found in this google repository.

However, at this time no system API seem to allow the manipulation of this file. So you are left with rooting the device as the only method to accomplish this update.
> 2 votes

---
Tags: applications, updates, google-hangouts, emoticons
---


# Question
Title: How do I view source code in an Android web browser?
Is there a way to view the source HTML in an Android web browser?

# Answer
> 75 votes
You can use Javascript's `alert` method to return the source code, type this in the address bar:

`javascript: alert(document.getElementsByTagName('html')[0].innerHTML);`

# Answer
> 291 votes
In Firefox or Chrome on Android it's possible to view source by prefixing the URL in the address bar with "`view-source:`", i.e. "`view-source:http://google.com`".

# Answer
> 27 votes
Look for an app called View Web Source in the market and install it.

Then when browsing, open your menu and tap "share", in the list that pops up choose View Web Source.

# Answer
> 8 votes
The app mentioned in this answer hasn't been updated since 2009.

You might want to try VT View Source.

# Answer
> 6 votes
Another tool that is useful for viewing source AND modifying them live, in Firebug/Web Inspector-like manner, is the weinre remote debugger.

# Answer
> 6 votes
Create a new bookmark (bookmarklet) on Mobile Chrome with:

Name: View Source (vs)

URL: `javascript:document.location='view-source:'+document.location; void(0);`

Now when on a page, tap the address field and start typing: vs. The bookmarklet should appear, click it and you are ready.

# Answer
> 4 votes
IN chrome, there is remote debugging facility. If you install Chrone on your phone. If you connect your phone through usb to PC,you can view the Javascript modified source on your PC in a Chrome browser.

See the end of http://eclipsesource.com/blogs/2012/08/14/debugging-javascript-on-android-and-ios/

# Answer
> 3 votes
If this is for debugging (from your comment it looks like it is) something even better is installing a user agent switcher extension for Firefox or Chrome on your desktop. Change the user agent to Android and you get the mobile version of the site, but with all the source and debugging tools you're used to.

# Answer
> 2 votes
you can capture the source to your shell or to a text file if you're using an emulator, which is very handy for development. To do this you'll need to install Android Developer Tools, which comes with adb. Fire up your emulator then from your OS's shell run the command:

```
adb logcat browser:V *:S

```

This will output anything from the browser app on your emulator and suppress any other log messages. From there any javascript console.log commands will be captured by adb and output for you to view. So, if you're using JQuery, you can add this to your page and it'll output the whole page html to the log:

```
$(document).ready(function(){console.log($('html').html())});

```

This will output everything within your html tag on the page to the log.

You can capture the output of your log (using BASH, at least, I can't speak to other shells) with:

```
adb logcat browser:V *:S > log.txt

```

now, any output from the log gets dumped into your log.txt file. This is really handy for a whole page's worth of HTML, as you can then search through it as you would any other text doc.

If you want to grab a specific bit of the page rather than the whole thing, you can specify that part of the page rather than the html tag in your JQuery, so if you need to look at a single div that has a class/id associated with it (for this example, it has a class named 'inspect-me'), you can change your JQuery to:

```
$(document).ready(function(){console.log($('div.inspect-me').html())});

```

# Answer
> 2 votes
If you are using a Opera browser type this in your address bar, make sure you erase the http and other stuff, then type:

```
server:source

```

in the address of the page which you opened.

# Answer
> 1 votes
That feature seems to be unavailable for all major android browsers. You could try Opera Mini instead.

1. Reset the console output by opening a new tab with the address `debug:resetconsole`
2. Open a tab on the page on which you want to do the inspection:
3. Run JavaScript code on the page by replacing the address in the address bar with the following address `javascript:var%20n%3Ddocument.firstChild%3Bwhile%28n%20%26%26%20n.nodeType%21%3DNode.ELEMENT_NODE%29%20n%3Dn.nextSibling%3Bconsole.log%28n.outerHTML%29%3B`
4. Retrieve the output by opening a new tab with the address `debug:console`

# Answer
> 1 votes
Kiwi Browser as of January 2022 offers "Developer tools" feature through which one can access rendered HTML among other things. See screenshot to know where to find it. The developer tools for a given webpage are loaded in a new tab.

Since Kiwi Browser also allows installing Chrome for PC extensions you can find an extension that allows viewing HTML of a webpage and can install it in Kiwi Browser. It should also work.

# Answer
> 0 votes
In firefox, if it is a real link to the final page (not the link we click on google), you can press and hold over the link and click on "download link", then open it in a text viewer (i suggest xplore app).

Bonus answer: to download a .mp3, from that downloaded page's text, select the .mp3 url, share it with "open with" or "better open with" app, and open it in the "NoBrowser" app that can handle .mp3 download, and is fast and tiny!

# Answer
> -1 votes
If you want to view source of Android browser page, or inspect page you can use this https://developer.chrome.com/devtools/docs/remote-debugging Its very good inspector

---
Tags: browser, html
---


# Question
Title: Accessing available app updates in Play Store app through a shortcut
It seems that Google is making it more and more difficult for users to check manually for the updates, trying to encourage people to keep automatic updates on. While I don't mind the automatic updates, I do like to see what changes have been done in each update (when the devs are kind enough to mention it), just to be aware when a new feature has been introduced or a bug fixed.

Currently, these are the steps needed in order to reach the page where I see the available updates:

1. Open Play Store app
2. Tap on the User icon
3. Manage apps & device
4. Updates available
5. Pending downloads page

Ideally, this could all be a one-click operation.

My launcher, Nova, offers shortcuts to app-specific actions in order to access certain app features or parts directly. Play Store has many listed, but it seems that none is taking you to the newly-introduced Pending downloads page.

Is there a way to figure out a unique shortcut that would take one to the "Pending downloads" page?

Tap to see the available updates

"Pending downloads" page

Thank you.

# Answer
Thanks to @alecxs for pointing me to this answer, that does almost exactly what I need.

The GPS intent is as follows:

```
Action  : com.google.android.finsky.VIEW_MY_DOWNLOADS
Package : com.android.vending
Class   : com.google.android.finsky.activities.MainActivity
Target  : Activity

```

I used Shortcut Maker to make a link to the Manage Apps & Devices' Overview page, which makes my life easier now.

**Edit: The method above stopped working at some point. Now I'm using this approach and I'm happy again, and additionally, it's one app less on my phone.**
> 2 votes

---
Tags: google-play-store
---


# Question
Title: Can one download GMaps offline areas without signing in?
Can one download GMaps offline areas without signing in?

# Answer
> 0 votes
From the comment section, it is currently not possible to download GMaps offline areas without signing in.

---

Comments:

> * No, but you can sign in, download the offline maps, then use them off-line although they do expire in 30 (?) days if I recall correctly. If you do not/can't sign into Google, then you will need to find a different Map/Navigation app.acejavelin Apr 4 '17 at 13:34
> * Yes like @acejavelin said its impossible without signin in but there are many apps offering offline maps like this one which i used before and recomend it. Silent 1 min ago

---
Tags: google-maps
---


title: Android Auto installed but "invisible"

text:
# Question
Title: Android Auto installed but "invisible"
I have Android Auto installed, but I can't run it:

1. I can navigate to Android Audio app's page in Google Play app and I see "Uninstall", but I don't see "Open".
2. I cannot see this app's icon in Nova Launcher (or any other launcher).
3. When I install this app directly from .apk file the "Launch" button in confirmation message box is grayed.

Is this something with my Android (10) or my gear (DooGee S88 Plus)?

This is the first time, I have such situation. So far, in the past 10+ years of using Android, I could only see apps that I can install and run or that I can't install. I have never seen before an app that I can install, but can't run, since this seems pointless.

BTW: When I tap "Uninstall" in Google Play then, after something that looks like uninstallation process, I don't see "Install" button again, but "Update" instead (which would suggest that application hasn't been actually uninstalled). This is also very weird and also I have this situation for the first time in my Android life. What is this, what is causing this or what am I missing in the above picture?

# Answer
> 2 votes
**Since Android 10, Android Auto is integrated as a system app but hidden for phone users. Users may have to install Android Auto for Phone Screens app to use it on their phones.**

According to Android Auto Help - I can't find the Android Auto app on my phone,

> Starting with Android 10, Android Auto is built into the phone as a technology that enables your phone to connect to your car display. \[...\]
>
> If you don't have an Android Auto compatible car or prefer to access Android Auto on your phone screen, there are 3 options:
>
> * If you're upgrading your phone from Android 9 to Android 10, make sure that your phone already has Android Auto installed before you upgrade. If so, the app icon will carry over to your newly upgraded device.
> * You can use Google Backup to backup and restore from another device that already has Android Auto app installed.
> * You can also go to the Play Store and download Android Auto for Phone Screens, which is only available on Android 10 or higher devices. Once you install the app, you can continue to use Android Auto on your phone screen.

---

According to GSM Arena, Doogee S88 Pro comes with Android 10 already. Thus, Android Auto app is hidden by default and users need to install Android Auto for Phone Screens if they want to use it from their phone.

On the other hand, Google Pixel 3a comes with Android 9 and Android Auto pre-installed. Thus, when it's updated to Android 10 (and beyond), the app icon is still shown on the app drawer.

---
Tags: android-10, android-auto
---


# Question
Title: Device not shown on ADB even after pairing for wireless debugging on Linux
Wireless debugging seems to pair, but then the device just does not show up. I tried it on Mac and it works, but it does not work on Linux. I am on a Samsung phone.

I run `adb pair [IP]:[PORT] [CODE]`. It executes successfully and tells me that I am paired with the device. Then I run `adb devices` and it is just blank.

On my phone, it doesn't say that it is paired to myuser@hostname, but rather root@hostname for some reason. I even tried logging in as root and listing the devices but it is of no avail.

The above steps work fine and list the device on a Mac. The phone also shows "Connected" next to the hostname and user, and the user is not root but rather the username.

I have tried-:

1. Disabling firewall
2. Trying the tools from the official repository, AUR package, google website, etc.
3. Restarting my PC and Android phone

# Answer
> 16 votes
As per the official documentation (snapshot of 22 January 2022), after pairing the device, the user still needs to manually connect the device

> 9. (For Linux or Microsoft Windows only) Run `adb connect ipaddr:port`. Use the IP address and port under Wireless debugging.

Despite it is not mentioned on the current documentation anymore, **this step is still necessary** (tested on Windows).

---
Tags: adb, linux, android-11, wireless-debugging
---


# Question
Title: How to stop Google Keep from seeing numeric data as phone numbers?
Google Keep on Android seems to convert arbitrary numeric data into clickable phone numbers. Any sequence of 5 or more digits, with differing punctuation seems to trigger it. I seem to have triggered this a lot so far and not once have I actually typed a phone number! This is proving to be quite problematic. The hypertext'd numbers are too easy to tap, particularly when you are going back to edit that text, which then transports you away to the dialer! Most annoying.

Is there any way to prevent the app from doing this?

**UPDATE:** I installed the update to 1.0.79 today but there is no change in this behaviour yet. In fact I can't see that *anything* has changed with this update?! Possibly bug fixes I guess, but nothing new is listed in the official change log either?!

However, this over zealous hyperlinking of numbers is more prevalent than I first thought... the default text messaging app does it as well - so I guess they share a common text-element?

# Answer
Looks to be bad recognition by Google's code. :-/ Happens on mine as well and no setting can change it.

Google is surprisingly receptive to feedback on its apps (a bug fix I reported made it into Google Music's update!), so two ways to get this fixed:

Go to Keep's page and click "Email Developer" and write this up. Or, within Keep, Menu -\> Send Feedback.
> 10 votes

# Answer
It has been at least **3 years** since this bug has been noticed and Google notified. It still hasn't been fixed! This also shows that Google Employees don't use Keep.

After must frustration I've developed a system for storing numbers in Keep:

The following are counted as part of a larger number if it has digits to the left/right of it:

* point `.`
* dash `-`
* hash `#` (a.k.a. pound sign)

So instead of using all these *"digits"* use other punctuation, example:

* IP address `128*0*0*1`
* Amount with cents `$ 1234,567,890+12`
* Arbitrary numbers, 5 *"digits"* and longer (4 digits is the limit) `account number 555=9999=444=22`
* PO Box `1921@6801`

Once Keep has marked a series of digits as dial-able:

1. use non-*digits* to break the number into chunks of 4 or less.
2. close the current Keep note
3. open the note again
4. notice how the series of digits aren't recognized as a phone number anymore.

I'll be dropping another email to Google and I'll be referencing this post.
> 5 votes

# Answer
I've been reading this post but I'm not a techy whizz, so messing with Keep settings etc. is not for me.

However, I've an easy way around this problem. I now use alternative characters at start, between and at end of my number string. I then select these characters and change the text colour to white. Bingo!! May not be a solution for all situations but it's working for my e-mail templates in gmail.
> 1 votes

# Answer
I work with medical facilities and Google and Microsoft both seems to have changed these 10 digit national provider numbers into phone numbers automatically which is a pain. However, if I select the 10 digits and underline it, the phone link disappears. If you don't mind the underline, it may be a resolution.
> 0 votes

---
Tags: google-keep
---


# Question
Title: How do I export my text messages from either my Android phone, or from the Android Messages web interface, with the timestamps?
This question is referring to Android Messages. For Signal and WhatsApp, there are either tools (or just copy paste) that allow you to export messages to a plain text file in this format:

```
[2022-01-29 13:43] Me: Hello
[2022-01-29 13:47] Other person: Hello to you too

```

Copy paste from the web interface doesn't work; that just gives output like this:

```
Hello
Hello to you too

```

I backup my phone to Google Drive, but that isn't browse-able. I can browse my phone's folders through Windows Explorer when I connect my phone to Windows with a USB cable, but that doesn't show the `data` folder. There are also solutions like the SMS Backup+ app that copies each text message to Gmail *as a separate email*, but that's not the right solution either, and is very unwieldy to convert into a text file.

`adb` solutions are fine as long as they work with an *unrooted* phone.

**Is there a solution here? I have a unrooted Pixel 5a running Android 12.**

# Answer
SMSBackupRestore can create local xml files in following format

`/storage/emulated/0/SMSBackupRestore/sms-20220130231717.xml`

```
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<!--File Created By SMS Backup & Restore v10.15.004 on 30/01/2022 23:17:48-->
<!--

To view this file in a more readable format, visit https://synctech.com.au/view-backup/

-->
<smses count="1" backup_set="51f3aa8f-9305-4a33-8b64-9bd0aa216060" backup_date="1643581068669" type="full">
  <sms protocol="0" address="+491749960000" date="1643272261991" type="1" subject="null" body="Sehr geehrter winSIM Kunde, die Abbuchung von Ihrem Bankkonto ist fehlgeschlagen. Bitte überweisen Sie die offene Rechnung mit Angabe Ihrer Kundennummer. Vielen Dank. Ihr winSIM Team" toa="null" sc_toa="null" service_center="+491760000443" read="1" status="-1" locked="0" date_sent="1643272258000" sub_id="1" readable_date="27.01.2022 09:31:01" contact_name="(Unknown)" />

```

If you visit the mentioned website ~~synctech.com.au/view-backup~~ you can copy & paste messages very easy
(beware of your privacy)

you can select all messages or just all messages from selected contacts or only selected messages in **one single** xml file and there is no need to send email or upload to google drive

---

MyPhoneExplorer can manage SMS (like eMail in Thunderbird), copy & paste or export messages into text file

`SMS Export 2022-01-31 00.26.txt`

```
Sender: +491749960000
Time:   Thursday, 27.01.2022 09:31:01
Text:   Sehr geehrter winSIM Kunde, die Abbuchung von Ihrem Bankkonto ist fehlgeschlagen. Bitte überweisen Sie die offene Rechnung mit Angabe Ihrer Kundennummer. Vielen Dank. Ihr winSIM Team

```

the whole sms database is located

```
%UserProfile%\AppData\Roaming\MyPhoneExplorer\<device>[<IMEI>]\SMS.dat
%UserProfile%\AppData\Roaming\MyPhoneExplorer\<device>[<IMEI>]\SMSArchive.dat

```
> 4 votes

---
Tags: backup, sms, google-messages
---


# Question
Title: Security Policy prevents video recording
I have a Samsung Galaxy S5. A few weeks ago, my video camera stopped working. Every time I press the video button, the following message appears:

> Security Policy prevents video recording

I have tried every recommendation, but I am still seeing this notice.

How can I get rid of this issue to record again?

# Answer
> 1 votes
A Security Policy can come from a few different sources, so it depends on where yours originated.

If it is a company device, you may not have any options without asking for permission.

If you have a Microsoft Exchange account, you would likely need to remove the account.

If it is your personal device and you do not have an Exchange account:

* Go to Settings -\> More -\> Application Manager (or Settings -\> Apps on Samsung)
* Select the All item
* Scroll down and tap on Security Policy Update
* Press Force Quit
* Press Clear Data
* Restart your phone

Credit for this process goes to skippybosco's reply on reddit

# Answer
> 0 votes
Check if Sensors Off is enabled on the quick settings panel.

It might also be a reason why your camera won't work.

---
Tags: samsung, security, video-recording
---


# Question
Title: How can I remove contacts from a phone without removing them from my Google account?
I have a 2nd phone (LG Stylo 6) that I will only use for some specific things & do not want all my contacts on it. I hadn't realized sync was on when I entered my email. I shut sync off but when I go to remove contacts on the Stylo 6 I get a message "This contact will be removed from Google Contacts & all your synced devices." I don't want to remove the contact from my Google contacts, I just want to remove it from this particular phone. Is this possible? Or do I have to come up with a new email for this phone so my Google contacts aren't effected?

# Answer
> 0 votes
This is not a good answer, but it's how I ended up doing it:

Settings \> Accounts \> Google \> select account \> Disable contacts sync

Then delete all the contacts by clicking selecting one for example and then on the three dots and select all -\> delete.

Disclaimer -\> do not sync the contacts again. If you want to then you will have to go back to an older version by using the web view contacts.google.com

---
Tags: contacts, google-account
---


# Question
Title: Enable Remote unlock from the Settings via ADB (no root)
I am trying to enable the Setting "Remote unlock" from Samsung *(in Settings -\> Biometrics and security -\> Find My Mobile -\> Remote unlock)* by using the adb.

I could enable other settings like Bluetooth or WiFi by using some commands on the adb. Now, I am trying to figure out how to enable this "Remote unlock" by Samsung. I searched all the Android documents and references but couldn't find any solutions. I personally gave up and I don't believe this is even possible.

I wrote `adb shell settings put secure fmm_unlock_recovery 1` and it seems to work. The only problem is, my devices don't connect to the internet because of too many failed password attempts.

Could someone tell me how or just if it's possible to enable it just by adb?

# Answer
> 1 votes
The following Setting-Parameters are for enabling "Find my Mobile":

```
fmm_community_finding=1
fmm_pub_tag_finding=0
fmm_unknown_tag_alert=0
fmm_unlock_recovery=1

```

So by writing the following commands, you can enable the Samsung's Find My Mobile via adb:

```
adb shell settings put secure fmm_community_finding 1
adb shell settings put secure fmm_pub_tag_finding 0
adb shell settings put secure fmm_unknown_tag_alert 0
adb shell settings put secure fmm_unlock_recovery 1

```

Keep in mind that you have to reboot "adb reboot" after writing these commands!

---
Tags: adb, samsung, security, settings, remote-control
---


# Question
Title: How do I remove Android 11 Cat easter egg when I have Android 12?
After updating my Samsung phone to Android 12 I wanted to remove the Android 11 easter egg, but since I have Android 12 now I can't do it. Does anyone know how to fix this (apart from factory reset)?

# Answer
Find out the package name for the easter egg (which will be something like "*com.android.egg*") using something like this:App Inspector. Then you can proceed to uninstall the app follwing this guide,connecting the phone to a PC through adb(Android Debug bridge) and using the command:

"*adb shell pm uninstall --user 0* ".

Though in case of system apps it is pretty much just disabling it: they will be back on a factory reset or you can even choose to reinstall it using the "*abd shell cmd package install-existing* "\** command.

You can use this method to remove any useless system apps which can't be uninstalled from inside the phone's menu.

\*install adb from here. \**replace \<package name\> with the appropriate pacakge name.
> 0 votes

---
Tags: android-11, android-12, easter-egg, samsung-one-ui
---


# Question
Title: How to show all the browsing letters in contacts list (right hand side of the screen) in Samsung Galaxy I5500 Europa?
I am using Samsung Galaxy I5500 (aka Europa). But when I browse contacts list not all the letters through A-Z show in the right hand side of the screen. The missing letters are K,L,Q,R,W,X. So, that It become irritating for me find these first lettered contacts.

Do you guyz have any solution to this?

Thanks for your help in advance

it is like this -

```
----------
         A
         B
         C
         .(in place of K,L,Q,R,W,X)
         Y
         Z
----------

```

# Answer
This was a problem on early Galaxy S roms too, but it got fixed in the later updates. On the I5500 the low display resolution could prevent from ever showing all the letters. My advice would be to check for firmware updates from Kies, or try a custom rom.
> 1 votes

# Answer
Letters don't show to save space ... but if you slide your finger slowly you will find all the letters showing in the middle of the screen
> 0 votes

# Answer
I'm not fond of the revision but it still works.

Here are 2 methods.

1. Gently press the far right side of one of your contacts. A letter will appear at the top-middle of the screen. As you scroll up or down the letter change to reflect which section it is focused on.
2. Gently press where the letters used to be visible, then move your finger a little bit to the left. If you do it just right a circle with a letter in it will appear next to your finger. It too will change as you scroll up or down.

Both methods are 'twitchy', hit or miss. Cheers John
> 0 votes

---
Tags: contacts, samsung-galaxy-5
---


# Question
Title: How to login to Google Maps in Android Auto, if I am already logged to my account in the system?
**tl;dr** *I cannot use saved destinations when using Google Maps through Android Auto, because I always see a message that I must login to Google Maps first. I am logged into my Google account in both system and every other Google-like apps. Only with Google Maps there seems to be a problem. Is there any fix for that?*

---

I was more than sure that when I have an Android phone, not rooted etc., where I am logged in (system wide) to an active Google account then I am also logged in to that account in any Google-related app, including Gmail, Calendar, Contacts etc.

Yet, when I plugged my Motorola Moto E4 to my Toyota Aygo and started using Android Auto with Google Maps, this turned out to be not true.

When selecting new destination address, I can:

* Type it manually
* Pick it from Google Calendar (I am logged in there and see my account's events)
* Select one of the latest or
* Browse by a category.

But I cannot use one of the saved ones (i.e. starred), because I am always hitting the wall with message saying that I must login to Google Maps first.

Here is a screenshot (in Polish, but it does the job):

How should I proceed in this situation?

# Answer
The described situation seems to be a bug in Android Auto.

It is true that you cannot use Google Maps app without being logged in to your account. But, in this particular situation it turned out that user was and wasn't logged in in the same time. Or was semi-logged in.

Google Maps worked normally, but when opened up on the phone (not on car's display) there was a strange user-like icon in the right up corner, instead of actual user's avatar. Tapping that icon (opening user menu) immediately changed it into actual user's avatar (no actual re-login was needed). Right after that all user-related features (like saved places) started to work in Google Maps running in connected car mode.
> 1 votes

---
Tags: google-account, google-maps, 8.0-oreo, motorola-moto-e, motorola-moto-e4
---


# Question
Title: How to edit 'etc/hosts' file in non-rooted phone?
I'm using LineageOS 14.1 and don't want nor need to root it. How can I remount `/system` rw and edit `/system/etc/hosts`?

All answers in "How to edit 'etc/hosts' file?" expect a rooted phone.

# Answer
Unless I missed something, that is not possible. Without root access only the mechanism of flashing an update (via recovery or OTA) can modify `/system`. To be accepted, such an update archive must be signed with the same key as the ROM – which is something only the developer of the ROM (here: the LOS team) can do.

There *might* be a way via a custom recovery which lets you edit all file systems directly (see e.g. ). But without knowing what device it is, it cannot be said if a matching recovery exists (you can check that in the Devices section of their website for *official* images, and search XDA for *unofficial* ones). Apart from that, it's either the device or not editing any file within `/system`.
> 13 votes

# Answer
It is possible to use a VPN profile\* to affect hostname resolution. There are a number of apps now available on the Play Store that provide a convenient way to do this, such as Hosts Go. Note that, since this technique requires the use of a VPN profile, you won't be able to use an *actual* VPN in conjunction with this technique.

---

*\*As of Android 4.0 (API Level 14) — https://developer.android.com/guide/topics/connectivity/vpn*
> 11 votes

# Answer
On non-rooted phone you cannot actually edit `hosts` file but it's possible to use VPN apps like Virtual Hosts or Personal DNS Filter (both are open-source, I've no affiliation with either) which intercept DNS traffic and look up a custom `hosts` file before making queries to configured upstream DNS server.

Or if bootloader is unlockable, editing `hosts` file is possible through custom recovery.

For more alternatives see: How to always resolve a domain name to a fixed IP without rooting?
> 11 votes

# Answer
I've seen some comments saying TWRP isn't explained clearly. This way you will only need developer options enabled.

So first get the file in your computer

> adb pull /system/etc/hosts hosts

Edit the pulled hosts and push it again to the phone into a folder you have write permissions

> adb push hosts /sdcard

Reboot the phone into recovery mode (TWRP), then go to mount and check "system" (DON'T check the "Mount system partition read-only"), go back and advanced -\> File manager. Now you have a file manager with the system partition writable. Rename /system/etc/hosts to something like hosts\_old, then move you edited hosts file /sdcard/hosts to /system/etc .
> 2 votes

# Answer
You can use a proxy and use your computer's /etc/host file.

On macOS I use Squidman, but you can easily find other alternatives for other OS.

## Squidman instructions

If someone goes for squidman, all you have to do is add the following line to the Template section of it's configuration:

```
#hosts file
hosts_file /private/etc/hosts

```

Once squidman is running, everything you have to do is configure your mobile device to use a Manual proxy entry pointing to the IP address of the computer running squidman in the same network.

Then you are ready to go.

And if you're running squidman and wants to access localhost, remember to comment out the following line in squidman config:

`#http_access deny to_localhost`
> 0 votes

# Answer
Warning: this will work only if ADB can get root access, which isn't the case for most ROMs. It works in in LineageOS 14.1.

# Requirements:

* `Developer options` enabled in phone
* `adb` installed in computer

# Steps

Apply the following settings in `Developer options`:

* `Root access` -\> `ADB only`
* `Android debugging` -\> on

Connect the phone to the computer. Grant permission in your phone if asked. In the computer, launch a terminal and run

```
$ adb root

```

Grant permission in your phone. Remount with

```
$ adb remount

```

Start a remote rooted shell

```
$ adb shell

```

In the adb shell, edit your hosts file

```
# nano /etc/hosts

```

When ready, disconnect

```
# exit

```
> -2 votes

---
Tags: hosts
---


# Question
Title: What is TWRP doing when it says "updating partition details"?
Whenever it decrypts data or applies a zip, it displays the message and then takes a rather long time.

What is it doing during that time?

In `top` I can see that the `recovery` process is fully utilising a core (and more), so it's not like it's sitting around waiting for some timeout either.

Is there anything I can do to speed this up?

# Answer
It's updating the partition sizes so that it doesn't get messed up while you're backing up the partition.

*(Source: partitionmanager.cpp in TWRP source code)*
> 2 votes

---
Tags: twrp
---


# Question
Title: Android emulator not connecting behind proxy even configurated for it
I've a android emulator, that is running on a computer that is behind a proxy.

From computer perspective, http and https internet access works fine, but on Android Emulator, nothing.

So I tried with "Use Android Studio HTTP proxy settings" and nothing, so I setup a "Manual proxy configuration", and it was accepted:

Doing this, I turned this virtual machine, off, and on, but still there is no internet:

Anyone here knows what is missing, and what do I need to do more?

Thanks in advance!

UPDATE1:

I've setup also on WIFI settings, and seems to be setup, but still there is no internet:

# Answer
The host is placed in a network that has a proxy auto config.

For this case the recepie that worked for me was leaving "Use Android Studio HTTP proxy settings" check, and only config WIFI to use to use auto Proxty config with full path for the pac file like this (in my case was a http with an https it could be needed a certificate):

http://proxyautoconfig.domain.com/proxy.pac
> 1 votes

---
Tags: proxy, android-studio
---