Tuesday, October 31, 2017

cyanogenmod - Android USB reverse tethering: How to fool the apps


USB reverse tethering = Cellphone gets network connection from PC via USB.


I know how to do USB reverse tethering except for one problem: Many Android apps will check network connection using the code below before doing any useful work:


ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();


The problem is that, when using USB reverse tethering, the above code will report no network connection. However, there IS a network connection (which is the USB reverse tethering itself), and ping, wget and all programs not doing this stupid check work well.


So the question is: How can I hack the system to let this network connection check return success (so that I can fool these apps)?


BTW. I use Cyanogenmod 7. And any solution specific to this MOD is also welcome.



Answer



I see that this is a rather old question but in case someone googled and got here. There is a fairly new module called FakeWifiConnection based on Xposed framework. The installation and usage should be quite straightforward.


sd card - Is there any way to recover data from 2nd SD partition?


From the beginning. I was using Link2SD in order to save up some internal memory, but today I noticed that all apps moved to to second partition (EXT2) magically disappeared. I don't want to repair Link2SD because I'm going to change phone very soon. I want to recover data from /data/sdext2, but i can't mount it. I want to recover this data because I change SDCard too. Link2SD saying something about invalid argument during creating mount script. Is there any way to access this data so far? Or I must say goodbye to them?


PS. First partition is safe and sound. It works great.



Answer



To access second partition on SD card if it's not deleted, you may adopt multiple approaches listed below. For deleted partitons or deleted files, you may use tools like testdisk and extundelete which doesn't seem to be the case here.


LINUX / WINDOWS


As mentioned by @iBug, you can remove SD card from phone and insert in a PC with Linux OS like Ubuntu. You will be able to access both partitions there. File browsers like Nautilus and Dolphin by default show all formatted partitions in left panel on newly inserted media.
In order to directly mount a partition from Android device to Linux PC, you can expose it as a USB Mass Storage device. By default UMS is disabled on newer devices but can be enabled by a little hacking.


Windows by default only mounts first accessible partition on SD cards and other removable media. However, if you want to access second partition on Windows, it is possible. You need to make SD card a local hard disk drive using a hacked driver like Cfadisk usb driver. Follow this link for detailed guide.



ACCESS 2nd PARTITION FROM ANDROID


Some custom builds of TWRP auto-mount SD card second partition under something like /sd-ext etc. If not so, you can mount it yourself in Android recovery or ROM, as you seem to have already rooted device.



  1. Reboot in TWRP recovery and use built-in terminal app there. Or if you want to do it from ROM, install terminal emulator app like Terminal Emulator if you don't have one already. Third option is to use adb, in ROM or in recovery.


  2. Find how kernel names block devices on your phone:


    ~# ls /dev/block/

    You will find a number of devices there. On a typical Qualcomm device, mmcblk0 will be representing internal memory i.e. eMMC and mmcblk1 will be representing external SD card. Though there will be many other internal partitions and loop devices, we are concerned with three entries of external SD card:


    mmcblk1    mmcblk1p1    mmcblk1p2


    Here mmcblk1p2 is the second partition on SD card.




  3. For confirmation:


    ~# fdisk /dev/block/mmcblk1p2

    This will show details about SD card second partition including size.





  4. Mount partition:


    ~# mkdir /sd_ext
    ~# mount -o ro /dev/block/mmcblk1p2 /sd_ext

    First command will create a directory sd_ext under your root which you may access from any file explorer or command-line. ro option in second command will mount the partition read-only so that you may not harm any data accidentally. You may eliminate this.
    If not successful, you may need to specify filesystem yourself what you used at the time of partitioning:


    ~# mount -t ext4 -o ro /dev/block/mmcblk1p2 /sd_ext

    To know which filesystem a partition has:


    ~# blkid /dev/block/mmcblk1p2


    There are many other tools that can be used for the purpose like parted, fsck and tune2fs etc. but these might not be necessarily available.




  5. Mounted partition will be un-mounted automatically on reboot. You can do this manually:


    ~# umount /sd_ext


NOTE:




  1. Be cautious not to touch second partition on internal memory which may belong to bootloader. Or you may brick your phone.

  2. All commands used above need root access and binaries are included in TWRP. You may install busybox in ROM if any command not found.


RELATED:



4.4 kitkat - Location consent annoyance



I use the Power Control widget shipped with Android to quickly turn GPS on and off. Since update 4.4.1 or 4.4.2, which features WiFi-based location detection, it's been pestering me for this location consent thing:


Screenshot
Screenshot (click image for larger variant)


I hit "Disagree" every single time, but it just pops right back up the next time I activate the GPS. This is extremely annoying and I'm worried I'll accidentally hit "Agree" one of these times.


How can I permanently disagree with this?




4.1 jelly bean - How do I enable USB tethering on a JellyBean device?


Does JellyBean support USB tether?



Is there a way compile the JB source so USB tether is always enabled? I would like to have the support through the OS and not depend on an App.



Answer



I successfully got native USB tethering working on the Nexus 7 with Jelly Bean.


Modify the device/asus/grouper/overlay/frameworks/base/core/res/res/values/config.xml to be the following:








true



true


false


true




7
94
208
458
2223




10
35
55
70
70
250





255
255
255
0
0

0




0

0
0
0
0
0



10



com.android.wallpaper/.nexus.NexusWallpaper

0
1


#ffffffff



9000


com.google.android.location


com.google.android.location









"wifi,1,1,1,-1,true"
"mobile,0,0,0,-1,true"
"mobile_mms,2,0,2,60000,true"
"mobile_supl,3,0,2,60000,true"
"mobile_dun,4,0,4,60000,true"
"mobile_hipri,5,0,3,60000,true"
"bluetooth,7,7,0,-1,true"






"1,1"
"0,1"
"7,1"





"rndis0"







0
1
5
7




"wlan0"





"bnep\\d"




30





1



true




true



250



false

false


-12




/dev/bus/usb/001



true



Modify out/target/product/grouper/root/init.usb.rc to be the following:


# Copyright (C) 2012 The Android Open Source Project

#
# USB configuration common for all android devices
#

on post-fs-data
chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr


# Used to disable USB when switching states
on property:sys.usb.config=none
stop adbd
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/bDeviceClass 0
setprop sys.usb.state ${sys.usb.config}

# adb only USB configuration
# This should only be used during device bringup
# and as a fallback if the USB manager fails to set a standard configuration

on property:sys.usb.config=adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct D002
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}

# USB accessory configuration

on property:sys.usb.config=accessory
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d00
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}

# USB accessory configuration, with adb
on property:sys.usb.config=accessory,adb

write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d01
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}

# audio accessory configuration
on property:sys.usb.config=audio_source

write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d02
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}

# audio accessory configuration, with adb
on property:sys.usb.config=audio_source,adb
write /sys/class/android_usb/android0/enable 0

write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d03
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}

# USB and audio accessory configuration
on property:sys.usb.config=accessory,audio_source
write /sys/class/android_usb/android0/enable 0

write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 2d04
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}

# USB and audio accessory configuration, with adb
on property:sys.usb.config=accessory,audio_source,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1

write /sys/class/android_usb/android0/idProduct 2d05
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}

# Used to set USB configuration at boot and to switch the configuration
# when changing the default configuration
on property:persist.sys.usb.config=*
setprop sys.usb.config ${persist.sys.usb.config}


on property:sys.usb.config=rndis
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 4e23
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}


on property:sys.usb.config=rndis,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18d1
write /sys/class/android_usb/android0/idProduct 4e24
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}


And use a modified tegra kernel that has RNDIS enabled.


Please reference this XDA post


How can I turn off the shutter sound for the camera on droid x running 2.2 froyo?




Possible Duplicate:
How do I disable the 'click' sound on the camera app?




I'd appreciate any help



Answer



You should check this question for a solution.


Monday, October 30, 2017

rooting - How to fix bootloop or decrypt /data in TWRP?


I am trying to recover the data from a default/factory encrypted Samsung Galaxy S7 Edge stuck in a bootloop (i.e.: restarting endlessly when booting the system). It is using the stock rom. Only the recovery (twrp) and download mode are working. I need to either fix the bootloop or decrypt at least the data partition in twrp (I know the lock pattern). Note: I know that the bootloop might be fixed by a factory reset, but that would result in data loss.


General info:


Model: SM-G935F
Codename: hero2lte

Android version: Stock 7.1.x (almost sure)
TWRP: 3.2.3-0

Install


I followed the adb guide and the install guide (only up to and including the twrp install; LineageOS was not installed).


After installing adb and heimdall on the pc, this is what was done on the phone:



  • Enter download mode

  • heimdall flash --RECOVERY twrp-3.2.3-0-hero2lte.img

  • Reboot into recovery



It kept saying it could not mount /system nor /data, but it never asked (and still doesn't) for the encryption password or anything. When trying to do a nandroid backup, Internal storage showed as 0 MB and it errored out.


Booting into the system worked without any issues.


Then, I tried installing (LineageOS') su, to be able to backup things properly using something like oandbackup or TitaniumBackup:



  • Boot into recovery

  • adb push addonsu-15.1-arm64-signed.zip

  • Install -> addonsu-15.1-arm64-signed.zip


I thought one of the following was going to happen:




  1. The write would work, and su would be available

  2. The write would work, and the stock rom would ignore it

  3. The write would fail, nothing would happen


It showed some errors about the partitions again (up to this point, I thought only the data partition was encrypted, not the system one).


I tried Reboot -> System, and what happened was:



  1. The device was (and still is) stuck in a bootloop



So I tried using LineageOS' su-removal:



  • Boot into recovery

  • adb push addonsu-remove-15.1-arm64-signed.zip

  • Install -> addonsu-remove-15.1-arm64-signed.zip


Yet, nothing seems to have changed. TWRP onscreen log:


Could not mount /data and unable to find crypto footer.
Failed to mount '/data' (Invalid argument)
Updating partition details...

Failed to mount /data (Invaild argument)
...done
Unable to mount storage
Failed to mount /data (Invaild argument)
Full SELinux support is present.
Unable to mount /data/media/TWRP/.twrps
MTP Enabled

Looking at /cache/recovery/log, it does not show /system as empty:


/system | /dev/block/sda14 | Size: 4132MB Used: 3987MB Free: 145MB Backup Size: 3987MB

Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_Available_in_GUI IsPresent Mount_Read_Only
Primary_Block_Device: /dev/block/sda14
Display_Name: System
Storage_Name: System
Backup_Path: /system
Backup_Name: system
Backup_Display_Name: System
Storage_Path: /system
Current_File_System: ext4
Fstab_File_System: ext4

Backup_Method: files

/data | /dev/block/sda18 | Size: 0MB Used: 0MB Free: 0MB Backup Size: 0MB
Flags: Can_Be_Mounted Can_Be_Wiped Can_Be_Backed_Up Wipe_During_Factory_Reset Wipe_Available_in_GUI IsPresent Can_Be_Encrypted Has_Data_Media Can_Encrypt_Backup Use_Userdata_Encryption Is_Storage Is_Settings_Storage
Symlink_Path: /data/media
Symlink_Mount_Point: /sdcard
Primary_Block_Device: /dev/block/sda18
Length: -20480
Display_Name: Data
Storage_Name: Internal Storage

Backup_Path: /data
Backup_Name: data
Backup_Display_Name: Data
Storage_Path: /data/media
Current_File_System: ext4
Fstab_File_System: ext4
Backup_Method: files
MTP_Storage_ID: 65537

But it shows nothing when trying to access it:



~ # ls -lah /system
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
drwxr-xr-x 2 root root 40 Jan 1 1970 .
drwxrwxrwt 24 root root 840 Sep 10 02:15 ..

Also in /cache/recovery/log:


I:Done processing fstab files
I:Setting up '/data' as data/media emulated storage.

I:Created '/sdcard' folder.
I:Can't probe device /dev/block/sda18
I:Unable to mount '/data'
I:Actual block device: '/dev/block/sda18', current file system: 'ext4'
I:Can't probe device /dev/block/sda18
I:Unable to mount '/data'
I:Actual block device: '/dev/block/sda18', current file system: 'ext4'
get_crypt_ftr_info crypto key location: 'footer'
Bad magic for real block device /dev/block/sda18
Could not mount /data and unable to find crypto footer.

I:Setting up '/data' as data/media emulated storage.
I:Can't probe device /dev/block/sda18
I:Unable to mount '/data'
# ...

Questions:




  • If it could not even mount the parition, how did it become soft bricked?





  • Does "Install" write anything anywhere else (excluding log entries, etc)?




  • Can it actually overwrite/damage the partition (or the block device directly) even when it cannot mount it?




  • Is there a way to debug the bootloop





  • How could the bootloop be fixed?




Decrypt


So I tried decrypting the data partitions to see if I at least could access it from twrp, using these steps.


This is the pattern:


[_   1   6]
[2 7 5]
[3 4 _]


Which means the code twrp uses (from 1 to 9) should be this: 2478635. So I tried:


~ # twrp decrypt 2478635
Attempting to decrypt data partition via command line.
Failed to decrypt data.

I also tried using the "native" code (from 0 to 8), to no avail:


~ # twrp decrypt 1367524
Attempting to decrypt data partition via command line.
Failed to decrypt data.


Looking at the partitions:


~ # ls -l /dev/block/platform/155a0000.ufs/by-name/
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
lrwxrwxrwx 1 root root 15 Sep 10 02:15 BOOT -> /dev/block/sda5
lrwxrwxrwx 1 root root 15 Sep 10 02:15 BOTA0 -> /dev/block/sda1
lrwxrwxrwx 1 root root 15 Sep 10 02:15 BOTA1 -> /dev/block/sda2
lrwxrwxrwx 1 root root 16 Sep 10 02:15 CACHE -> /dev/block/sda15
lrwxrwxrwx 1 root root 15 Sep 10 02:15 CPEFS -> /dev/block/sdd1

lrwxrwxrwx 1 root root 16 Sep 10 02:15 CP_DEBUG -> /dev/block/sda17
lrwxrwxrwx 1 root root 16 Sep 10 02:15 DNT -> /dev/block/sda10
lrwxrwxrwx 1 root root 15 Sep 10 02:15 EFS -> /dev/block/sda3
lrwxrwxrwx 1 root root 16 Sep 10 02:15 HIDDEN -> /dev/block/sda16
lrwxrwxrwx 1 root root 15 Sep 10 02:15 OTA -> /dev/block/sda7
lrwxrwxrwx 1 root root 15 Sep 10 02:15 PARAM -> /dev/block/sda4
lrwxrwxrwx 1 root root 16 Sep 10 02:15 PERSDATA -> /dev/block/sda13
lrwxrwxrwx 1 root root 16 Sep 10 02:15 PERSISTENT -> /dev/block/sda11
lrwxrwxrwx 1 root root 15 Sep 10 02:15 RADIO -> /dev/block/sda8
lrwxrwxrwx 1 root root 15 Sep 10 02:15 RECOVERY -> /dev/block/sda6

lrwxrwxrwx 1 root root 16 Sep 10 02:15 STEADY -> /dev/block/sda12
lrwxrwxrwx 1 root root 16 Sep 10 02:15 SYSTEM -> /dev/block/sda14
lrwxrwxrwx 1 root root 15 Sep 10 02:15 TOMBSTONES -> /dev/block/sda9
lrwxrwxrwx 1 root root 16 Sep 10 02:15 USERDATA -> /dev/block/sda18

Shows that sda14 is the system partition and that sda18 is the data partition. So I managed to pull /dev/block/sda14 and /dev/block/sda18:


adb pull /dev/block/sda14 sda14.img
# ...

adb pull /dev/block/sda18 sda18.img

/dev/block/sda18: 1 file pulled. 3.7 MB/s (26843545600 bytes in 6961.803s)

I verified that the SHA-1 hashes of the block device and the .img match, but I'm at a loss about how to decrypt them on the pc.


Question:


How could I decrypt them on Android/Linux/Windows?




Note: If this is too specific for this site, please comment where the appropriate forum would be. I know of the phone-specific xda, but that seems to be too generic. Any help is appreciated.




Sunday, October 29, 2017

Is there an official Android "Google" ROM?


So I have an old unlocked phone and I'd like to load up my own OS. I've seen some mods out there. CyanogenMod seems to be the most popular. However, I was curious if I could just install a pure untouched version of the OS -- as distributed by Google. I seem to remember being able to download a clean compiled version of the Android OS.


Does Google distribute any binaries like this, and if not, is there someone out there that does?


Additionally, is this even worth trying? These days is it necessary for Android to be packaged with special drivers and such for all of the different hardware out there?



Answer



To answer if Google distributes binaries for your device: No, they do not (Unless you have a Nexus device). They do, however, have the full Android source code available so that if you wanted you could compile the source code for your device. However, that leads into your second question about the drivers and such. Yes, you will need to find the drivers and any other proprietary files that your device requires for it to interface with Android. You would have to search about compiling a custom ROM for your device and how to include these files.


Likely, your simplest choice is find an AOSP (Android Open Source Project) ROM that exists for your device and install that. Check the XDA Forums to see if your device is included on their site. IF so, go into the development sub-section for your device to search for ROMs.


external sd - Change Mount Point for SD Card?


As this question Why is the SD-card mounted to "/sdcard/external_sd" instead of "/sdcard" (or "/mnt/sdcard")? points out, newer versions of Android often point the /mnt/sdcard path to internal storage instead of the SD card, and the location for the sd storage is not clearly defined and varies from device to device.


Is it possible to modify my phone so that /mnt/sdcard would actually point to the SD card instead of some arbitrary location on internal storage? (would this require rooting the phone?)


Since the new specifications are so vague about what the mount point should be for sd cards, many apps do not work properly, or have features (such as backup and restore or export) that are completely useless if the /mnt/sdcard path doesn't actually point to a removable piece of memory that you can move to another device.



Answer



As eldarerathis noted in his comment, this will require root. But you don't need to manually edit the vold.fstab file for this, as there are some nice little helpers available:


Root External 2 Internal SD can swap your cards (i.e. exchange their mount points):



SwapCards
Root External 2 Internal SD (Source: Google Play)


Note that this app requires Android 4.0 or higher.


camera - Bind action to hardware key combination


I know that long-pressing power + volume down hardware buttons for a second or so on any screen takes a screenshot - I was hoping to bind an action to the power + volume up combination (specifically I was hoping to make it take a photo without having to open the camera app).


I've looked at a few apps that I thought might do it but they all seem to only allow for remapping of individual hardware buttons/long-presses of individual buttons, not assigning an action to a hardware key combination like this.



I'm currently using cyanogenmod 11 with xposed installed, so an answer requiring either or both would work (although I didn't see any options in cyanogen or modules in xposed that would do this).



Answer



I've come close but I still can't launch an action at the same time when two keys are pressed in combination like the way we do for taking a screenshot. Anyhow, you would need:



  • AutoInput (for Android 4.3 and above) with Tasker, both are/have paid/7-day full trial, or

  • Xposed Additions (needs root access) with Tasker to make key combination(s).


The inconvenience in this solution is that unlike pressing both keys at the same time you would have to do it in sequence. That is, press/hold Vol Up followed by Power button. The timing between these key-presses is flexible.


Single key-press


Use AutoInput with Tasker if you want to launch your action with single key presses combination i.e. only press a key one time but don't want to long-press the keys.





  1. In Tasker create an Event based profile from Plugin → AutoInput → Key → Configuration:



    • Keys: Volume Up

    • Key Action: Key Down




  2. Create a task in it named "AutoInput Volume Up" and create following actions in it:





    1. Variable → Variable Set:



      • Name: %Kset

      • To: 1



    2. Task → Wait → Seconds: 1



    3. Variable → Variable Set:



      • Name: %Kset

      • To: 0




    Explanation: When the single Vol Up press is detected the custom variable %Kset would be initialized to a custom value 1 and then we would wait for one second (under this one second you would've to press the Power key). We're then initializing the variable to 0 because our solution demands it, otherwise, our main task of capturing a photo would be executed just by a single press of Power key.



  3. Repeat step 1 but select Power key instead of Volume Up key.



  4. Create a task in it named "AutoInput Power" and create following actions in it:



    1. Task → If → Condition: %Kset eq 1


    2. Plugin → AutoInput → Modes:




      • Configuration:




        • Key Suppress: Enable

        • Keys: Power



      • Timeout: None



    3. Optional action -- Alert → Flash → Text: Commencing launch

    4. Media → Take Photo → customize it as per your needs.

    5. Repeat sub-step 2 of step 4 but do Key Suppress: Disable.


    6. Optional action -- Task → Else.

    7. Optional action -- Alert → Flash → Text: Psst: You're too late Jim!



    Explanation:



    • In our first action we are checking whether the variable %Kset is set to 1 and if yes then the second action would block Power button press from getting passed to system since normally Power key-press would put the device to sleep and lock the screen.

    • Optionally flash a custom toast signalling that combination was successful.

    • Let the Tasker capture the image using the settings provided in that action.

    • Disable Power key suppress since otherwise, you would never be able to use that button normally, as long as key suppress is not explicitly disabled or AutoInput's accessibility is running.


    • Else statement is optional but could come handy since in the beginning your consecutive key-presses may not be in coordination so the custom toast in next action would hint you that the combination wasn't successful.




That's it. Go to Home screen or to any non-Tasker app, press the Vol Up key and then the Power key under a time period of one second (don't worry, you would get a hang of it, or else, change the wait period) and you would see Tasker opening its custom interface, a picture would be captured automatically and you would be taken back to what you're originally doing.


Hurray!




Long key-press


Some people may not like single pressing both the keys since they are not habitual or may feel odd to use them in that coordination. In that case, provided that you've root access and Xposed Framework installed, you can use Xposed Additions to set long key-press actions for your keys.


For custom action to be set to those keys we would need Tasker. Create the two tasks named "AutoInput Volume Up" and "AutoInput Power" explicitly in Tasker, only if you didn't follow Single key-press section.




  1. In that app go to Button → set Long press delay time → Add new key → tap Vol Up key → select the new key entry.

  2. Tap Add new ConditionScreen On → → select the new entry → check Long Press and tap on that entry → scroll down to ShortcutTask ShortcutAutoInput Volume Up.

  3. Repeat step 1 but do it for Power key.

  4. Repeat step 2 but select AutoInput Power under Task Shortcut.


Whenever Xposed Additions is enabled and activated in Xposed Framework, on any long-press of a button/key set under that app, you would feel a slight vibration. That vibration would help immensely to know when to release the first key and long-press the other key.


Try it because it's fun.


Saturday, October 28, 2017

Can the Samsung Galaxy Tab be used as a wifi-hotspot?


Is it possible to use the Samsung Galaxy Tab as a wifi-hotspot so that non-3G iPads can use the Samsungs connection to the phone network?



Answer



The Galaxy Tab comes with Android version 2.2 (Froyo), this version of the Android OS comes with the ability to work as a WiFi hotspot for up to 5 devices built in. This lets you share your Tab's 3G connection out to other devices over Wifi.


I've tethered wifi only devices like my Kindle 3, and a wifi Skype phone to my Galaxy S's wireless hotspot in this way and connected them to the internet with no problem, so I can't see any reason you'd have trouble doing that between a 3G Galaxy Tab and a Wifi iPad.


(it is possible for your phone company to block this facility, to date I think Verizon in the US are the only company to block it)


privacy - Is there a way to use Google location service without tracking my positions constantly in background?


I want to use Google location service based on wifi or cell tower data without gathering and sending my (later anonymized) positions to Google in background when I do not explicitly make the requests. When I decline to send my location information for in "settings - location", the location service is disabled.


I suppose this would be possible on a rooted phone only.




external sd - Micro SD card physically damaged?


it seems to me that my sd card is damaged so I wiped/erased it from android few times but it did not help.


Right now what happens is that if the card is present the phone freezes (not always) at the same time. SO it seems to me that the card is physically damaged.


Can I somehow find out if the card is damaged? The best from my phone.


Is there any low lever format of micro SD cards that might help in such case? Mark bad blocks so something similar?




HTC Desire + CM 7 RC2 + Kingston 16GB Type 4



Answer



Have you tried formatting your SD Card in a dedicated reader, as opposed to doing it directly on the phone?



Most phones (and even most laptops' built-in SD Card readers) have problems writing SD Card partitions. I usually format my SD Cards in a stand-alone card reader hooked up to my PC via USB. Also, it's probably worth re-partitioning it with Partition Editor from Ubuntu LiveCD.


installation - Where should I install Toybox?


I own a rooted Samsung Galaxy S Relay 4G running stock Android 4.1.2.


If you have Android 6.0 "Marshmallow" or better, then you have Toybox. This is a package of command-line tools, handy for advanced users who sometimes use a terminal emulator. Unfortunately, Android 4.1.2 does not include Toybox. Instead, it includes some other tools which aren't as nice to use.


Sometimes I use the terminal emulator written by Jack Palevich; other times I use adb shell from a laptop.




  1. Would it make more sense to install Toybox to my system partition, or to my data partition? Both partitions have far more than enough free space.




  2. When a command is provided both by Android and by Toybox, I want the Toybox version to win. On Linux, I might install Toybox to /home/unforgettableid/bin or /usr/local or /opt. Could you please suggest a sensible place for me to install Toybox (and its large collection of symlinks) on my phone?





[Edit: I wonder what the various BusyBox installers do. Also, I wonder how Android sets the PATH environment variable. As well, I also wonder whether or not there's a way for me to change that variable and to make my change persist across reboots. Finally, I wonder whether or not putting the Toybox tools first in my PATH would be likely to break things in non-obvious ways.]




Possibly related: "Android Folder Hierarchy".



Answer



If your Android version ships with Toybox and some Toybox symlinks, you can leave those in /system/bin. But, if you're installing Toybox yourself, it might be wisest to put the freshly-installed Toybox, and all its symlinks, in /system/xbin.


Let me explain why.


As Firelord points out in his answer: adb shell starts an interactive shell. But commands such as adb shell ls start a non-interactive shell. For performance reasons, non-interactive shells never read any config files. Because they don't read any config files, their search path is hardcoded.


It's nice to have Toybox available even to non-interactive shells; in fact, if it's unavailable to such shells, it can be confusing. So you definitely want to install Toybox to a location which is on the search path.



But you might not want to put the Toybox symlinks any earlier in the search path than Android's cp, ls, and other basic utilities. I've never checked, but I theorize that your version of Android might include apps which depend on quirks of the stock Android command-line utilities. To learn more, see this post, in which the Android command-line tools maintainer explains why Android had to stick with its non-Toybox ls for some months.


Most of the stock Android command-line utilities are in /system/bin. The only directory which falls later in the stock Android shell's search path is /system/xbin.


That is why you may want to put Toybox and all its symlinks in /system/xbin.




Tip: If you want, you can create a shell script which simply passes all of its parameters to Toybox. You can give this shell script an ultra-short name such as t. This makes it easier to request that your device should run a Toybox toy instead of a stock Android command. For example, to run Toybox ls, simply enter t ls.


permissions - How to fix "Notification access is not available"?


I have a TECNO Spark 2 running on Android 8.1. Every time I try to install apps that require notification access, it says that the feature is not available.


How to fix it?




Friday, October 27, 2017

5.1 lollipop - Unknown status bar icon (Samsung Galaxy S6, Android 5.1.1)


What does the following icon in my status bar indicate? And how do I remove it?


enter image description here



As far as I know I didn't turn any setting on that triggered it. I can't find the icon online. My first guess was that it was either VoLTE or VoIP or WiFi calling, but I do not have any of these as options on my phone.


EDIT 1: The icon does not go away, unless I turn off WiFi. Below are screenshots of my full home screen and of the open notification panel.


Home screen


Notification panel


EDIT 2: The screenshot below is of my phone's "Call Settings". I have no 'Wi-Fi Calling' option. According to guides online, it should come after the 'Vibrate' option.


enter image description here


The screenshot below is the results when searching 'Wi-Fi' in settings. No call options come up.


enter image description here


EDIT 3: It definitely is the Wi-Fi Calling icon (even though I do not have it as an option on my phone) -- I tested it now and I can phone my contacts when in flight mode.



Answer




In short, it indicates that for the mobile calls the wifi will be used, if there's a good wifi signal.


I have found it there:




This strange new symbol shows your phone’s set up for Wi-Fi calling. It’s a new feature brought in by the UK’s biggest networks to help give you the best call quality. If your phone doesn’t have good reception, like when you’re indoors, it’ll make phone calls using an available Wi-Fi network instead.



Flaw in `adb shell ime list -a`?



I wanted to understand how to work with IMEs. More precisely, I was trying to figure out how to disable in a single command one can disable all the input methods so that the hardware keyboard takes over. I thought that the detailed description given about each input method on giving the


adb shell ime list -a

command (with an emulator instance running on my 12.04 64-bit Ubuntu machine) might help me.


Here I accidentally observed (see the pic below) that in spite of the disabling the various IMEs and then giving the IME listing command, enabled=true stays!


IME list command bug?


Is this a bug?



Answer



The enabled=true in this list tells whether the IME's service is enabled in its manifest; that is, whether the developer of the IME has allowed it to appear in that list. It has nothing to do with whether it's turned on or off in the settings.


touchscreen - Is there a way to disable touch temporarily?


Imagine that you want to do something, while the display in is action (not in sleep mode) and at the same time, you don't want to do anything else. This situation is like children lock, in which, all buttons fail to react, temporarily, to disable any kind of interaction by a child.


Is there a way to achieve this in Android? Do we have something like lock screen?




Answer



If your talking within your app, this is impossible as you cannot override the home button even if it is soft or hard button. So a full lock is always impossible.


This is to stop rogue app's taking full control of the phone.


wi fi - Why does Wi-Fi fail to connect to certain public networks?


It won't connect to certain free official public networks in shopping malls, caffees or hospitals for example where it supposed to even with signal strength bars being 3-4. That's right gentlemen, almost full signal strength and it just stalls stating it is aquiring IP address but after a few minutes disconnects. I have this network connectivity log if it can help, otherwise guide me to the right direction and I will supply you with required logs.



03-19 13:12:22.351 I/wpa_supplicant( 8091): got scan complete 
03-19 13:12:22.351 I/wpa_supplicant( 8091): wpa_supplicant_get_scan_results:return scan results2
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[AndroidAP],rssi[-83],BSSID=b4:07:f9:4c:b8:c1
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[bneizion],rssi[-59],BSSID=1c:af:f7:7d:f6:d9
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[],rssi[-67],BSSID=00:15:70:d1:60:ac
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[],rssi[-73],BSSID=00:15:70:5f:f8:b4
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[orange-TSZQ],rssi[-86],BSSID=00:21:04:db:fe:42
03-19 13:12:22.351 I/wpa_supplicant( 8091): AP:ssid[zerbrachot],rssi[-73],BSSID=00:16:e3:f0:9f:39
03-19 13:12:22.351 I/wpa_supplicant( 8091): Received 1400 bytes of scan results (6 BSSes)
03-19 13:12:22.351 I/wpa_supplicant( 8091): wpa_driver_wext_get_scan_results---

03-19 13:12:22.381 D/GpsLocationProvider( 1344): GetGpsInterface+
03-19 13:12:22.381 D/GpsLocationProvider( 1344): GetGpsInterface-
03-19 13:12:22.381 D/lib_locapi( 1344): loc_eng_inject_location, accuracy = 209.0
03-19 13:12:22.411 D/AutoSetting( 4710): service - mLocationListener: onLocationChanged() location = Location[mProvider=network,mTime=1332155542386,mInfo=244.94112160000003333295.25668425,mAccuracy=209.0
03-19 13:12:22.441 D/AutoSetting( 4710): service - handleMessage() incoming message, what:1
03-19 13:12:22.441 D/AutoSetting( 4710): service - mLocationListener: onLocationChanged() location = Location[mProvider=network,mTime=1332155542386,mInfo=244.94112160000003333295.25668425,mAccuracy=209.0
03-19 13:12:22.441 D/AutoSetting( 4710): Util - isSetupWizardCompleted(): true
03-19 13:12:22.441 D/AutoSetting( 4710): Util - wifi connected
03-19 13:12:22.441 D/AutoSetting( 4710): service - processLocationBundle() distance to current is less than 1000.0m, bypass update
03-19 13:12:22.441 D/AutoSetting( 4710): service - handleMessage() within range



samsung galaxy s 4 - How do I get my wallpaper to stop moving?


I just changed my background on my home screen on my Galaxy S4 and every time I scroll to a different page the picture moves. How do I get this to stop?




cyanogenmod - Which files/folders on my SDCard are unsafe to delete manually?


I've had my Droid for nearly a year now, and in the process of installing and uninstalling apps, moving data to and from my SDCard, and all the various things one does with a phone the SDCard has become a little unruly.


It's time for a little file system maintenance.



It won't be difficult, but I only know enough about Linux file systems to be dangerous and I don't want to delete something important from my SDCard on accident. I couldn't find anything on Android's site about how an SDCard is formatted, so is there anyone who can tell me which files/folders are off-limits or point me in the direction of a good resource?


Please note, I don't want to know which files/folders are safe to delete. I know I can delete /Epicurious since I've uninstalled the app already, etc.


I'm running CyanogenMod 6.2.1 (based off Android 2.2.1) on my Motorola Droid.



Answer



I'm tempted to say everything is safe to delete. It should be, with a storage device intended to be removed and used elsewhere. But I know some apps will be unhappy. So a good rule is not to delete anything that's clearly used by an app that you care about.


It's probably a good idea not to delete level 0 directories that start with a . such as /.android_secure/ (protected apps) either. Those folders are generally used by the system and, while I don't believe Android ever stores anything important on the SD card (besides apps if you consider them important), there's probably no reason to delete them either. /Android/ and /data/, /sd/ and /*.img, and /settings.db (if present) are also used by the system. Those are app data, recovery images, and various settings respectively.


Also watch out for a /DCIM/ folder or similar, which may have any pictures you've taken. Presumably you'd want to back them up. Likewise with /download/ and /media/.


You'll want to watch out for /update.zip, /busybox, /clockworkmod/, and the like as well if you're rooted or have a custom recovery.


Note if, like me, you have "internal SD" as well as external, then most of the above is stored on the internal SD. The external SD appears as /external_sd/ within the internal SD, or may be mounted at /emmc/ or similar. You can apply the rules above to both storage areas.


Thursday, October 26, 2017

sms - In a group/mass text message from an iphone to other phones, who sees my reply to the group msg from my android?


If an iphone user sends me a group/mass text message on my android and I text back and hit reply (not reply-all) not realizing that it is a group/mass text, who sees my reply? Just the original sender of the group msg(an iphone user) or everyone that was included in the group/mass text? I use the stock text app on my android(Verizon Samsung Droid Charge) and there is no reply-all button in my text app. when I reply to text messages. I only received one text that was a reply to the original group/mass text, but received nothing else from anyone in the group. The iphone user that sent the original group/mass text says that she is the only one that probably received my reply. Not realizing that it was a group/mass text. I REALLY want to know if anyone else besides the original sender saw my reply. When I received the text there was no indication(on my android) that it was a group/mass text.


Thanks so much!




clockworkmod recovery - A simple explanation of CWM and Odin


I'm going to root my Samsung Galaxy Note and I come across the terms CWM and Odin very often. What exactly are they? It seems that CWM is used for rooting and Odin for flashing the phone. Is there more to it?


I've posted here because I have been unable to to find a good explanation online.



Answer



CWM is the shortform of ClockWorkMod. ROMManager, CWM recovery, Tether etc are their products. CWM Recovery and ROMManager are tools which enables you to backup your current ROM, install custom ROMs etc.


If you are interested in knowing more about CWM, see this page. For rooting you do not need CWM. In fact for installing CWM you need to be rooted.



For anyone who plays with ROMs, tweaking and testing, CWM Recovery or some thing equivalent to it is mandatory and would save your neck several times.


Also, you could specify which part you are not clear with. It will help to get better answers. :)


What is the use of Android System WebView?


I have seen some Android phones where this application comes installed on the device. What is the use of this application?



(Click image to enlarge)


IMG: Tem


Does installing this app have any advantage on any other Android devices which does not have this application installed?




4.1 jelly bean - how to sync phone memory with pc?


Before Jelly Bean forced us to use MTP mode (mass transfer protocol) instead of Mass Storage Device, It was dead simple to backup my phone to my pc, because I only needed to plug it in, and sync the contents of the SD card to my PC.


I used an app called "Free File Sync", which basically just syncs any two folders in windows.


The problem now is, that MTP mode doesn't assign drive letters to the phone's memory (internal and SD), which causes that my syncing program simply doesn't recognize the device.



I have the same problem with other programs that I use to manage my phones SD card, namely "TreeSize free", which analyses any folder or drive and gives you an oversight of the space consumed by folders, etc. Again, since the phone is not assigned a drive letter, the program simply ignores it, as if it wasn't there.


So what are my options? Is there a default way of syncing MTP drives with Windows?


I also have tried to enable Mass Storage in my phone, but it doesn't work (the option is simply no longer there in Jellybean 4.1.2, or at least in my model)


Note, I don't want apps to make backups of my stuff (apps, pictures, etc), I already have them (Titanium Backup, etc), what I want is to be able to SYNC everything in my phone (backups included) to my pc automatically.


I could simply copy ALL files from Windows Explorer every single time, and then manually syncing it to the destination backup folder, but obviously is not convenient and loses the point of SYNCING.


So what can I do? I just want to once in a while sync everything in my phone to my pc as a backup.


Thanks!



Answer



I am posting this as an answer to my own question, instead of just a comment, because I've found a solution.


In fact, the solution is to use the very same tool I was using, because they have recently updated it (version 7) enabling syncing of MTP devices.



Free File Sync


It works just as expected, and it's extremely easy to sync. The only downside is that comparing the folders (your local "backup" folder, vs. the devices memory) is slower than if it was a Mass Storage Device, but it is a more straightforward solution than the others.


As a side note, I’ve also used ES File Explorer successfully as a way to sync files (as suggested by gibfahn), but the advantage of FreeFileSync is that it works with just about any MTP device, being Android or not.


And the best of all, it's free!


Wednesday, October 25, 2017

lock screens - Unlock phone with a different button


I have a Nexus 4, and everything is OK, but I have realised that the power button is not working as well as I want. Sometimes I have to press it twice or push harder, so my question is: could I set up my phone to unlock with a different button, for example with the volume buttons? Is there any solution in case that the power button becomes inoperable?



Answer



When the power and back button failed in my rooted LG P500, I used Button savior. This app works without any restriction on rooted devices and with few limitations on unrooted.


This app creates a small overlay on the screen (which is customisable in terms of its size, visibility, position etc.) and pressing this overlay slides a virtual buttons on screen to lock, volume up and down, back, home, search, menu, camera etc.


It was indeed aptly named for as it saved my trip to service centre to shell out money on my phone to replace the keys.


root access - Would disabling the package installer prevent updates?


If so, how can I disable the ability to sideload apps while still being able to update apps already installed?



Answer




Disabling the package installer would prevent apps from making the user request to install an app. Technically, they would still make the request but it would not show up, with the installer being disabled. That said, if a system app has INSTALL_PACKAGES permission (such as Play Store) or a third-party app has root access somehow, disabling the package installer would make no difference. Similarly, disabling it would not prevent sideloading from adb.


google play store - buy an app - message: "none of the accounts on your phone are supported"

This summary is not available. Please click here to view the post.

boot - How to create start up scripts using the init.d folder?


In this answer to a question I asked a while ago, he said it's possible to have a script executed every boot.


I created a file (without extension) that contains the following:


#!/system/bin/sh


busybox mount -o bind /emmc/Android/data/com.google.android.music/ /sdcard/Android/data/com.google.android.music/

I made sure the target folder exists and saved the file to /system/etc/init.d, but in fact it looks like the script isn't executed.


P.S. the script file's properties are: -rwxr-xr-x.



Answer



In my version of Android (cm11 / LolliKat) there is a 90userinit script in init.d that tries to run a script named /data/local/userinit.sh if it finds it.


I've not tried this, but naming your script /data/local/userinit.sh might do the trick.


[I know it's an old question, but for posterity...]


6.0 marshmallow - Removing a contact from "Direct Share" panel


I just migrated to Android 6.0 and the 'Share to' panel has a new grey area on top of the various apps in which it puts contacts that, I assume, you pin there. This would be a good feature, except a contact ended up there and I can find no way to remove it. Is there one?


Specifically, the contact seems to have been put there by the Messenger app but there is no way to alter its pinning from the app, either.





Tuesday, October 24, 2017

How to verify an ADB backup file is complete and in a good state?


This is not a duplicate of How to verify a backup file from ADB backup. The poster there probably didn't know that an unrooted phone requires -nosystem (ref) and ended with a 0 byte file, where my backup file is almost 8GB.



Given that adb gives almost zero feedback on it's backup progress and success or failure. How can I be confident that the backup I've just completed is a good one? and that it contains what I think it does? and that it will (probably) work to restore or extract data from?


I have the one android device (Nexus 5), access to Win7 PCs, and ubuntu virtual machines if needed.




Can't connect to OpenVPN properly on Lollipop


I'm having a problem similar to that described here: https://forums.openvpn.net/topic17851.html - namely I have a home OpenVPN server set-up that I can connect to with my Linux machines and with Android Kitkat, but when I tried to connect under Android Lollipop (with various Android OpenVPN apps), it doesn't work - I remain connected to my local network. Most of the OpenVPN apps I try, including OpenVPN Connect (the official app) just report successful connection (but then don't show any up/down activity beyond an initial blip) - even though they aren't really connecting me properly to the VPN. However, 'OpenVPN for Android' app additionally reports:



Route rejected by Android224.0.0.0/3 Bad LinkAddress params /224.0.0.0/3

Which is mentioned in the forum post linked above. I tried the solution suggested there (though, in fact my client-side .conf didn't have any "topology" entry - so I tried adding "topology net30"), but it didn't help.


Again, all of my other devices (Android Kitkat, Linux machines) can connect to the VPN without any difficulties or complaints. Is this some sort of Lollipop-specific glitch and is there any way round it?




samsung galaxy s 2 - "Charging paused. Battery temperature too high" while connected to car charger


I have a Galaxy S2 with ICS.


When I use it in my car, while it is charging from a car charger, I occasionally get this popup:
"Charging paused. Battery temperature too high"


Charging paused. Battery temperature too high


Also Waze is running while this happens.




  • Is there anything I can do to prevent this from happening?

  • Does this indicate that my car charger is defective?



Answer



Your charger is fine. Only your phone is running hot due to heavy usage.


Your phone has a few components that dissipate heat if heavily used:



  • The processor when used heavily by an app (yours has 2 cores)

  • The graphics chip when your app uses OpenGL (also for screen composition)


  • The display when lit (depending on the brightness)

  • The battery itself (when charged or discharged heavily)

  • The modem also needs rather much power for 3G/4G/LTE data transfers


If this all above leads to a high battery temperature a safety mechanism kicks in for security reasons (LiIon battery technology needs this supervision, you may have heard of burning or exploding consumer tech)


Reasons: It's mostly a mix of all things above. Maybe it's also a bad programmed app (requires too much computation, keeps CPU awake, etc.).


What you can do:



  • lower screen brightness

  • underclock your CPU via SetCPU


  • Is Force GPU rendering in the developer settings enabled? If so, disable.

  • Try another app or file a bug report for waze (maybe)

  • Does the app work also when the screen is off (I'm not sure what it does, maybe it has speech output that doesn't require you to look at the screen)

  • maybe it's due to your model (I heard the i9100G generates more heat)

  • Switch to 2G only in the mobile networks settings:
    Settings->Wireless&networks->more->Mobile networks->Use only 2G networks (saves battery)


samsung nexus s - can't update, can't do a factory reset


I have a Nexus S running Android 2.3.4. For a while now it's been trying to prompt me to install newer versions. Every time I try, it restarts, displays the cute robot error screen and doesn't come back on until I take out the battery and restart it. Pressing power+volume+/- doesn't help.


I also tried to do a factory reset. Same result.


Before I got this phone (it was a gift), the shop did something to it "to enable Hebrew." Not sure what exactly but I suspect they dinkied around with system files and that's what is causing this.


Anyone have suggestions for what to try next?




networking - How can I see what IP address my android phone has?


I would like to know what IP-address my Android phone has. E.g. if I use my phone over WiFi, how can I get the local IP-address that is assigned to my phone?



Answer



The easy way is to go to your WiFi Settings, and hit Menu > Advanced. It'll show up there, or you can set it to a static IP if you want.



The cool way is to dial *#*#4636#*#* to open the Testing menu. Then click WiFi information, then WiFi Status.


Monday, October 23, 2017

Why are apps excluded from Titanium Backup?


I have been using CM Browser for couple of years. A couple of months ago I set Titanium Backup ( Pro - version 7.5.0) to backup on schedule as shown below ( 3 as maximum backup versions ):



Screenshot


After the last update of CM Browser, which I didn't like, I uninstalled it, being sure I could switch to the earlier version. Surprisingly, I didn't find CM Browser backup !


To doubly verify, I installed CM again and took a manual backup (by force-running the schedule) and sure enough it didn't show up – despite of the "backup completed" toast being shown (no error message in between either). And yes, I've verified that I didn't have any filters set that might be hiding it.


It can't be a version issue of Titanium as the previous version should have retained 3 backups.


Why is this so? What makes apps "unbackable" ? How do I fix this?


Device: Moto X Play, 6.0.1, stock, rooted


Edit:




  1. As suggested by Izzy in comments, searched the backup directory and found backups of Browser. Installing the apk from there got me my old Browser version but minus the bookmarks ( Data for apkalways included in preferences).Backup of newer version also present in apk





  2. Mailed the developer. Will post updates but meanwhile ideas to troubleshoot are welcome




Edit 2: when I took a logcat for the second time (in the process of installing app and forcing a backup), TiBu mysteriously decided to show me CM Browser with all previous versions and data intact. I haven't the faintest idea and will post an answer if the developer clarifies. I have mailed him the logcat. Pastebin here


You are welcome to post your answers




notifications - Phone won't shut up even in Vibrate/Silent mode


If I set my phone to Vibrate or Silent modes, it's still making audible notifications for GMail, Hangouts, Waze, and maybe other things.


It has worked as expected for years, and then started doing this in the last few weeks. I don't see any other setting anywhere that adjusts this.


All 3 of the main volume controls are at zero. Is there somewhere else I should look?



The loudness of the notifications matches the loudness of the notification slider when it's not muted. Like if I set it to high level and then go to silent mode, the notifications are still high level. If I set it to the lowest level and then go to silent mode, the notifications are at the lowest level.


CM11, Android 4.4.4, Samsung Galaxy S Relay




privacy - Is there a list that explains the risks involved with each granted application permission type?


Usually an installed android app will request permissions such as


Phone calls
read phone state and identity


or


System tools 
prevent phone from sleeping

But the actual consequences from a privacy stand-point is often a mystery to me. Is there a resource that explains the risks involved in these permissions in a greater detail? Especially regarding privacy and personal information security.


(Pros would be such as one with practical examples, analysis, pitfalls, providing complete a lists.)



Answer



General information


You might want to take a look at What do the permissions that applications require mean? -- our "community wiki" which hopefully becomes such a ressource one day. Next to that, you might want to take a look at App Permissions Explained – What Do They Really Mean?, a blog article at AndroidPIT giving at least some short explanations.



TechPP's article Use Permissions to Secure Your Private Data from Android Apps goes a little deeper into details (recommended reading!). Another nice overview is provided by BinaryDroids.


Edit: I've tried to sum up information from all kind of sources I could find, so the probably most comprehensive collection can be found at Android.IzzySoft.DE: Permissions. Don't be afraid of the ".DE": it serves its content in English as well. (Disclosure: I'm the owner, creator, and maintainer of that site.)


A last direct recommendation is How App Permissions Work & Why You Should Care -- and for more, please visit our good old aunt Google :)




Edit: I could not resist to add more valuable hints, as this is a very sensitive topic. So I will continue updating my answer:





Advertizement inside apps


Also keep in mind that many permissions some app requests might not be required by the app itself -- but rather by some ad module that app uses. So according to TechRepublic14, MobFox and AdMob, two of the biggest ad networks, require the following permissions: INTERNET, ACCESS_NETWORK_STATE, ACCESS_COARSE_LOCATION, and READ_PHONE_STATE (so they can know who you are [READ_PHONE_STATE: phone number, IMEI/IMSI], where about you are [ACCESS_COARSE_LOCATION], what networks you are connected to [ACCESS_NETWORK_STATE], and whom you are communicating with [again READ_PHONE_STATE, while in call, for the "remote number"]). Does this look a bit too paranoid? That doesn't mean nobody's after you, see Deep Dive Into Ad Network Behavior on Android.


Which means: if you don't feel well with some combinations, you might simply check if the app on your wishlist also has a paid version -- which might do without those permissions, as it does not carry the "ad module". Speaking of this: Addons Detector will help you figure out which of your apps carry such a module piggyback. In this context, also consider: as trustworthy as the app developer might be, (s)he might not be aware of and has no influence on what those "ad modules" do with your data. Remember: advertising networks get the same Android-permissions as the installed app they’re associated with.13


On this topic, also read:






Was this shocking news for you? Did I infect you with some "paranoia" -- and now you fell "left alone" with your bad feelings? I won't leave you without some recommendations. First, you might want to know which potential "data thieves" you already invited to your device, unaware of those risks. It's usually no bad intention of the developer (you know: "No money, no honey" -- the devs have to make a living as well). So having identified some "bad guys", you might want to confront the dev and give him the option to switch to a different, less "dangerous" ad provider (after all, the dev might have been unaware of the risks involved as well). If he's unwilling, you can still decide whether to kick the offender from your device. Or to "go pro", if there's a pay version available which comes without an ad module inside -- and honor the dev's work while safe-guarding your data, which I'd say is a typical win-win situation.


So: What options do you have? I will give a few examples below.



  • Addons Detector knows a lot of those modules. High rated (4.7 stars at more than 3,000 ratings), it not only detects ad modules, but also analytics, development, and licensing modules

  • Lookout Ad Network Detector -- nomen est omen -- concentrates on the ad modules. Its additional value is the ability to tell you exactly what data is being collected, and by whom. Comparable rating (4.4 at > 3,000 ratings)

  • TrustGo Ad Detector offers comparable features, and also gives you details on the ad networks' behaviour and backgrounds. Currently 4.5 at ~ 2,000 ratings.


"Root users" might also have heard of several ad-blocking apps (e.g. Adaway, Adblock Plus -- the latter not even requiring root), some of them able to not only "block by host/IP", but directly de-activating the ad modules. Well, those are no longer available on the playstore, as Google has banned them. But you certainly will find them in other places on the web. Make sure to select a trustworthy source, if you plan to make use of those. I recommend F-Droid, which has its own "market app" with the same name, so you get updates as well. All apps there are open source and thus free of charge. And no, obviously no "hacked pro versions for free", all fully legal and lawful :)



Sunday, October 22, 2017

lg g2 - LG G2 - USB debugging disables when I connect to a PC


I'm trying to set up remote debugging on my brand new LG G2 phone.


Seen here: http://www.html5rocks.com/en/tutorials/developertools/mobile/


So far, I've:



  1. Enabled developer options

  2. Enabled "USB debugging" on the Developer options screen

  3. On the "PC Connections" screen - I've set "USB connection method" to "PC Software"


So - everything looks good at this point.



However, as soon as I connect the device to my PC, the "USB debugging" setting on the "Developer options" screen turns gray (disabled). If I go to DevTools on Chrome on my PC (chrome://inspect/#devices) and check "Discover USB devices", my phone is not listed.


What else do I need to do?



Answer



I had the same problem with my G2 D802 only mine did work before when still running android 4.2. It was a driver issue and fixed it by the folowing steps:



My usb setting is set at (MTP)


That did it for me.


4.2 jelly bean - Can't take screenshots on Nexus 4



I have a rooted Nexus 4 (totally stock, except for CWM recovery). Yesterday I updated it to the 4.2.2 OTA. Today I discovered that I can't take a screenshot. Holding power + volume down should work, but when I try it the volume gets turned down or the pop-up for power off/airplane mode appears.


Is the timing for taking a screenshot really finicky? Is this a known issue in 4.2.2? (I've had the phone for less than two weeks, so I'm not sure if I tried to take a screenshot in 4.2.1).



Answer



As it turns out, the timing is just that finicky. Both buttons need to be pressed & held at exactly the same time to take a screenshot. I was used to a mod on my previous phone that had more relaxed timings so you could hold power and then hit volume down to take a screenshot.


development - Is it possible to program on a Honeycomb tablet?




Possible Duplicate:
How can I do development on my Android device?




I was wondering if there are apps making it possible to program on an Android tablet? I know it's not the best "work tool" out there, but I was wanting to get one, and was wondering if it's also possible to get some work done with it.



  1. Is there some IDE app available for PHP or JavaScript?

  2. Is it possible to program compiler based languages using some sort of IDE (like C++)?




samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...