text:
Partitioned sdcard not working with link2sd
I have a 4GB SD card which is partitioned into 3GB and 1GB (Well it's not 1GB it's approx. 750 MB) (I used it through my phone 'cause i didn't have a reader and i used mini tool partition wizard) then I put my data back onto the 3GB partition. Link2SD showed me a screen titled :"select the file system of your SD card's second partition" which has 4 options:

ext2
ext3
ext4
FAT32/FAT16

The 1GB partition is ext2 so I choose ext2 and restarted my phone. It showed the same message every time and it tells me "If you're getting this message after reboot it means that the second partition cannot be mounted automatically at boot"
My phone is a rooted Vodafone 858 Smart / Huawei 8160 it's running CM7.2
I tried to reformat and repartition but nothing worked.

What does logcat say? Try to 'adb shell' into your device and see if your 2nd partition is the 750gb ext2 one: 'cat /proc/partitions', you should see /dev/block/mmcblk0p1 and /dev/block/mmcblk0p2. In a second step, try to mount your 2nd partition manually. 'mkdir /mnt/sd-ext' then 'mount -t ext2 /dev/block/mmcblk0p2 /mnt/sd-ext'

i tried what you told me i found /dev/block/mmcblk0p1 and /dev/block/mmcblk0p2 but the problem is in the second step i tried "mkdir /mnt/sd-ext" and it told me "can't create directory /mnt/sd-ext : read-only filesystem" so i tried to remount it using "mount -o rw,remount rootfs /mnt" but it told me "mounting rootfs on /mnt failed : invalid argument"

oh, sorry. Just use a writeable fs for the target. Try /dev/sd-ext (it's a temporal location that's forgotten after reboot) and mount there

i tried that and link 2 SD showed me the same message

Hi Mohamed, missed you yesterday, let's see in chat or just reply here...

Requirements:

have a SDcard with a second partition that is ext2/ext3/ext4/... formatted.
be sure /data/sdext2 exists
be sure that mount-scripts are in place (menu->more->recreate mount scripts in link2sd)

If unsure, do as root via adb:
df | grep sdext2 should show you a mounted ext2/ext3/... mmcblk0p2 partition

but it has to quick reboot from link2sd after each real reboot

In my case, I had formatted the partition of interest in ext2 and used on a CM 10.2 build.
I rolled back to CM 7.2 and selected the default ext2 but it wouldn't work.
After rebooting and having the same problem, I selected the ext4 file system and voila!

Try making second partition using your clockworkmod recovery. If it does not help got to step 2.
Ensure that the format of the second partition is not automatically changing itself. To do this you can follow the following steps:

Insert your memory card into your pc with help of a memory card adapter.
Download , install and run mini tool partition wizard.
Backup important stuff from your sdcard.
Delete every partition on your sdcard and click apply.
After that recreate your desired partitions. This time it won't revert to ext3..
Now you must try to use link2sd and see if the problem is resolved. If not, go to step 2.

As described by NaraRockingMyAce at an xda forum :

With help of MiniTool Partition Wizard delete only your second
partition on sd card. (use sd card adapter, don't do it through data
cable).
Create the 2nd partition again and make sure to set it as primary.
Apply and verify if the problem is resolved.

that problem (link2sd unable to properly recognized partition) will and has happened to people who used modified link2sdPLUS. make sure you are using the actual free version or download the free version and pay for actual Link2SD_plus. that's what I've learnt :D

Would you please mention the link (edit) for the "actual free version" where the reader (if willing) can pay?

I struggled getting the ext4 partition to mount. I saw the answer from denny mihai above that emphasized the need to have the partitions in the correct order. Mine were ext4 first and fat32 second. I used minitool to delete the ext4 partition, move the fat32 and then create a new ext4 partition (making sure it was a primary) . My partitions were then in the order described by Denny. On the next reboot of the Android tablet, link2sd mounted the ext4 with no further configuration.
Thanks goes to Denny.

For CM7, you have to choose ext3 (for CM10.1 and 10.2, none of them works for me).

Please, no leet-talk here.

Fat32 partition must be set as first partition, and ext2,ext3,ext4 set as second partition. It is very important that they be in that order.
After, make sure that you have all partitions set as : primary.
Finally, try all ext2,ext3,ext4 - only ext4  worked for me!!
Good luck!!!


text:
Android Market not working after factory data reset
I am using an HTC Wildfire S with Android 2.3.5. Recently my Android Market got automatically updated to the Google Play Store. I had to factory data reset due to some problem, Now I can see Android Market in phone and Android Market isn't updating to Google Play thus I am unable to access Google Play. I have already logged into Google Account in my device.

I cannot download any apps from Google Play using web too!!

This happened to me previously. All I did was just wait and it eventually updated to Play Store.

Have you tried opening Android Market from the home screen, with a data connection? I had a similar problem with Android Market details pages and web site and in-app payment methods being broken. Eventually I entered through the front door on the device and it made me OK all the new rules and started working again. Someone at Google screwed up and broke the app unless you use the home screen regularly, lol.

I'd just say make sure you have a WiFi connection going on and have the Google Market app open. I think it will update itself after some time. I think it can just take a little while.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Why is there a blank white space under some Apps?
This seems to happen in any app that uses some kind of comment display thing.
Here are some pictures. (sorry that they're not screenshots, I don't think it's possible without root)

This also happens with every other Reddit app on the market. All of them have the exact same problem when viewing comments.
I assume that there is some UI control in common between them, something that lists read-only tap-able text areas, but I'm not an Android developer so I don't actually know for sure.
I'm using a Motorola Atrix 2 from AT&T with stock ROM.

Weird. Not sure what to suggest. It appears to be the background color of the application. Usually developers explicitly set this or use a theme (for example, Holo). Maybe they are using a theme and the ROM isn't loading it correctly? (Because the Themes are a part of the OS, not the app).

@BryanDenny: That actually is the default theme on Motorola's BLUR devices. It's really weird looking but they did it intentionally.

@eldareathis my guess is the app is using the default Dark theme.... yet Moto Blur isn't making it dark???

As far as I know, this is just the way Motorola designed their BLUR interface. See, for example, this screenshot from a blog post on Motorola's dev site:

This basically appears anywhere that a developer uses a ListView object, which is fairly common as it's the native way to display...well, a list of things (appropriately named, no?). Motorola describes their reasoning as such:

The gray background at the bottom of the list is inherited from the device theme. Its purpose is to show users where the list ends.

In your case, the gray is instead white (which I've also seen on the Droid X), but the same concept applies.
If you want to get rid of it you basically need to re-theme your device and get rid of the BLUR UI, which is generally not possible without rooting and using a custom ROM due to how tightly integrated it is into the system. Alternatively, you could email the developer and politely ask them to re-theme the ListView, since they have the option to explicitly override the default theming if they want. Whether or not they think it's worth the effort is kind of out of your control at that point, though.

Ugh, so I was right. That's just horrible. Many developers assume the default colors when they use a theme, not for a ROM to mess them up.

This makes sense, thank you. I haven't been able to find any pages in my searches regarding this problem anywhere else. I know a few of the apps that I use are in active development and very receptive to user feedback, so I'll shoot them an email about the problem.

Also to note, I get a grey color if I'm using a light theme, and a white color if using a dark theme.

Developers don't necessarily have to re-theme the ListView to fix this - it can also be done by not forcing the ListView to fill the screen.  The problem is on the ListView below - if layout_weight="1", or layout_height="fill_parent", then the ListView takes up any unused space, and you get the ugly white background. Setting layout_height to "wrap content" and getting rid of the weight solves the problem.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

<ListView android:id="@+id/statsList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

</LinearLayout>

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Galaxy S2 device memory filled
I have a Galaxy S2 (4.1.2), with 2 GB for app storage, and 16 GB of storage. I have no external SD card and no desire to buy one.
The 2 GB app storage is now almost filled, and I can't find a way to move apps to the 16GB internal storage. My internal storage is almost empty, but I simply can't utilize it. The move app to SD option does not work because the internal storage is not recognized as SD.
How can I deal with this?

I think this is an unresolvable issue but you can find more info at the link below
https://android.stackexchange.com/a/12108/57153

Type in keypad *#9900# option 2 delete dumpstate logcat it really works and gets rid of that annoying disk thing at top of notifications and can download again
Hope it helps. I had the same issue and this worked.


text:
Applications restore or install from external sd card
I have Samsung Galaxy Duos Trans-S 7562. It had an problem with Wifi, so I sent the phone in for repairs. Before handing the phone over to store, I backed up the applications on the external Sd card.
Now applications can not be restored or installed. Only contacts are backed-up. The error message I get is Applications not downloaded from Google Play store can not be installed.
I used "Super backup-Contact And SMS" application for backing everything up.

Have you enabled Settings > Security > Allow Unknown Sources? That needs to be enabled to install non google play applications.

Yes,now it is working efficiently

Great, I'll add a full answer, it might help others!

Sure,I will pray from god to please you with some cookies today,you save me from dad's wrath

Cookies sound good :) Glad I helped, and you won't get in trouble. I have been there myself many times before and it is a horrible feeling! I'm off to buy cookies!

This is due to the fact that by default non google-play applications are blocked by default in Android, as a security measure.
To allow these to be installed go to (this may vary in wording across Android Versions)
Settings > Security > Unknown Sources this allows things to be installed that are not form the known (Google Play Store) source.
You can, in later versions, set only the inital install to process or allow any further ones to install.
In android it is similar to this (slight variety in different versions)
http://www.fannsoftware.com/img/UnknownSrc.png
On the Kindle it is slightly different:

(source: bestvpn.com)

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How to recover deleted photos from a specific directory(folder) in non-rooted device?
Some bad cleaner app deletes all my photos stored in a directory(folder) which is created manually by myself (for example, /sdcard/myphoto/).
I tried some photo recovery apps. But none of them recovered those photos and none of them provides a feature to recover photos from a specific directory. All recovery apps just scan the entire memory and restore all deleted photos once. (Actually most recovered photos are not deleted at all. I have no ideas why they are recovered... Anyway)
Are there any ways to recover deleted photos from a specific directory in non-rooted device? I am explicitly sure which directory those photos are, and I just want those photos only.
Thank you very much.
PS: I know there are questions about photo recovery. But mine is different. The main focus of this question is "from a specific directory".

Data recovery tools mostly use the "file carving" method which scans for JPEG headers in the partition. Of course by this method you get all images, deleted or not. A good tool may check if a recovered images is already known in the file-system (hence is not deleted) but otherwise this could mean that images that were saved twice on your partition - one still exists, the other deleted - the deleted image would be always ignored.

@Robert thanks a lot for letting me know the recovery concept in the background.

@alecxs Thanks for your reply. I don't really know how recovery works. So not sure why the question is how to get partition image. I just want the recovery tool to scan a specific directory for instance /sdcard/myphoto/ instead of finding all the deleted images in all directories in the partition. Mine is not a mediatek device, it's a Qualcomm Snapdragon 835 device.

“from a specific directory” is secondary thing. Without root you don't have access to underlying filesystem (block device), so data recovery isn't possible at all.

@IrfanLatif thanks for letting me know this. There are many photo recovery apps which do not require root in play store. So are they just lying? Maybe they just scan all caches and dot files and list photos in cach directories instead of a real recover.

@sgon00 sorry I never tried any of such apps, so can't comment. What I know is that data recovery from filesystem isn't possible without access to block devices, which is restricted in Android. For relevant details see my answer to https://android.stackexchange.com/a/208114/218526

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How to access /storage/emulated/10 (multi-users env) in adb shell on Android 9+ without root access?
I have two Android system users configured.
$ pm list users
Users:
    UserInfo{0:Owner:13} running
    UserInfo{10:security space:13} running
    UserInfo{999:XSpace:800010} running

When the mobile is running at Android 8.1, I can access the secondary user's space /storage/emulated/10 easily in adb shell.
But after I upgrade to Android 9, I can no longer do it:
$ ls /storage/emulated/10
ls: /storage/emulated/10: Permission denied

Any ideas how I can access my second user's space in adb shell?
Btw, my /sdcard/ always points to the first user's space /storage/emulated/0 at adb shell regardless what my current user is at mobile UI. The adb shell connection remains the same when I switch users at mobile UI too.
When I switch users at mobile UI level, my adb connection remains the same. And I do see the current user changes with the following command:
$ dumpsys activity | grep mCurrentUser
    mCurrentUser=0
$ dumpsys activity | grep mCurrentUser
    mCurrentUser=10

WHY IS ADB DENIED ACCESS TO MULTI-USER STORAGE?
Access to /storage/emulated/10 is denied from adb shell due to this change in Android 9:

Add "default_normal" support to vold.
  This new flag isolates each user on a multi-user device for security reasons.

What the mount option default_normal does in sdcardfs is explained here:

The default_normal option causes mounts with the gid set to AID_SDCARD_RW to have user specific gids, as in the normal case.

The whole story is about Android's filesystem emulation in order to have a permission-less directory (/sdcard) which makes file sharing among multiple UNIX users (apps) possible. It's achieved through mount namespaces and different VIEWs of /data/media mounted in /mnt/runtime/. Apps belonging to secondary as well as primary user have isolated mount namespaces. For details please see What is the “u#_everybody” UID? and What is /storage/emulated/0/?.

Btw, my /sdcard/ always points to the first user's space /storage/emulated/0 at adb shell regardless what my current user is at mobile UI.

For all native processes running in root mount namespace (including adbd), /sdcard is a symlink to /storage/emulated/0 and /storage/emulated is bind mounted from /mnt/runtime/default. The device owner's (User_ID: 0) files in /storage/emulated/0 have ownership root:sdcard_rw (0:1015) and permission mode 0771, while secondary profile/user's (say with User_ID: 10) files in /storage/emulated/10 have ownership 0:1001015.
It means that non-root processes can read the directories only if they are members of supplementary groups: 0001015, 1001015, 11001015 and so on, "others" can only traverse the directories. Since adbd is member of only 1015 GID, it can read only device owner's files, not of secondary users.
However up to Android 8 there was an exception to the above rule: to all the processes running in root mount namespace (non-app processes), sdcardfs always returned the directories /storage/emulated/[N] owned by GID 1015. So adb was able to read these directories. However the exception has been removed in Android 9 using mount option default_normal.

HOW TO ACCESS MULTIPLE-USERS FILES FROM ADB?
WITH ROOT ACCESS:
You can mount the emulated filesystem without default_normal option:
~# umount /mnt/runtime/*/emulated
~# /system/bin/sdcard -u 1023 -g 1023 -m -w -G /data/media emulated

Or to make changes permanent, replace sdcard binary with a shell script:
~# cd /system/bin/; mv sdcard sdcard.bin; touch sdcard
~# chown 0.2000 sdcard*; chmod 0755 sdcard*
~# chcon u:object_r:system_file:s0 sdcard
~# chcon u:object_r:sdcardd_exec:s0 sdcard.bin

/system/bin/sdcard (remove -i argument passed by vold):
#!/system/bin/sh

set -- $(echo "$*" | sed 's/-i //')
/system/bin/sdcard.bin $*

After reboot you should be able to read files in /storage/emulated/10 from adb shell.
WITHOUT ROOT ACCESS:
On Android 9+ filesystem level access to secondary users/profiles is not possible from adb on user builds of ROMs (i.e. without root). Only interaction through adb commands which support --user option (am, pm, content etc.) is possible. Documented in What’s in Android 9 for enterprise apps:

"To help keep work data in the work profile, the Android Debug Bridge (adb) tool can’t access directories and files in the work profile."

If the files owned by secondary users are accessible to primary user (through adb or any other means, except through Device/Work Policy Controller app), it breaks the intended isolation between users/profiles which is controlled through Android APIs. See more details in How to share files between regular account and work account?
It should be noted that Android Debugging Bridge (adb) is meant to be used by developers for debugging, not by end users. That's why a fully-managed device owner can completely disable adb.
There's a suggested workaround to transfer data with secondary users/profiles as explained in Testing Multiple Users:

"adb (or more accurately the adbd daemon) always runs as the system user (user ID = 0) regardless of which user is current. Therefore device paths that are user dependent (such as /sdcard/) always resolve as the system user."
  ...
  "Access to /sdcard paths of secondary users is denied starting in Android 9."
  ...
  "Because adb runs as the system user and data is sandboxed in Android 9 and higher, you must use content providers to push or pull any test data from a nonsystem user."

For instance to transfer test.jpg file to /storage/emulated/10/Pictures/ run the following commands from adb shell:
~$ content insert --user 10 --uri content://media/external/images/media/ --bind _display_name:s:test.jpg
~$ ID=$(content query --user 10 --projection _id --uri content://media/external/images/media/ --where _display_name=\'test.jpg\' | grep -o '_id=[0-9]*' | cut -d= -f2)
~$ content write --user 10 --uri content://media/external/images/media/$ID < test.jpg

However it's not a practical approach for bulk data transfers on a regular basis.

Thanks a lot for this answer. I have upvoted it because it provides very detail explanation about this problem. But due to I want to access the directory without root access, I can not mark it as the answer for now. In theory, I know the 2nd user password (I am the 2nd user), I should be able to access my own files/photos. If there is no way to achieve it, google did something extremely wrong here. Thanks.

@sgon00 personally I neither use adb for data transfer, nor Work Profiles. Also I'm not sure what's Google's stance on this issue. But in my opinion if the files owned by secondary user are accessible to primary user (through adb or any other means, except through Device/Work Policy Controller app), it nullifies the whole purpose of Work Profile. Note that the Work Profiles are not to use duplicate apps, but for isolation. So this enhanced isolation in Android 9 is justified. I wanted to write a few lines on this in my answer but keeping in view the length of the answer I didn't.

Just saw this good answer. So I cannot mkdir to emulated/10 too?

@user12158726 yes. If /storage/emulated/10 isn't accessible, you can't read or write anything.

So i must root the phone. It is nothing to do with It policy setup?

Shared folder for all users is /storage/emulated/*/Android/obb
where * = userid


text:
Why does otg mount take long time on some mobiles? Can it be sped up?
I have an external 500GB SSD drive. I connected it to android devices via otg cable.
It works fine. Once it's mounted, it's pretty fast.
The only problem is the mounting time. At some devices, the mounting time is fast and about 6 seconds. This is fine to me. But at some devices, the mounting time will take up to 50 seconds. They are all running Android 10 with different models and brands.
I am wondering why the moutning times are so different among devices and is that possible to speed up the speed on the slow devices (without root).
Thank you very much.
Edited:
Some more information:
The LOST.DIR folder will be created at the first time mount.
The partition map/scheme is Master Boot Record.
The file system is FAT32. The reason why I don't use exfat is because some mobiles do not support exfat.
It doesn't matter what files inside the drive, the mounting time will not change. Even with a empty drive, the slow mobiles will still take about 50 seconds to mount. (so far).
For instance, for one slow mobile which is Sony brand. It can mount the drive really fast when it's exfat file system. I forgot to count the time, might be less than 10 seconds. But when it's fat32, it will take about 50 seconds to mount. I can not test it again because I have put data in the drive. If it's not necessary, I don't want to cut them out and reformat.
Thanks a lot.

I would assume that most users only have one Android device, hence they don't notice the different mount speeds. It would be interesting if you could add the details to your question which device requires what amount of time and how many files of what type are on the ORG stick.

@Robert thanks for your reply. The slow one is Sony brand. Sorry that I don't really want to reveal all the detial models. What inside the OTG stick does not matter. Even if the OTG is empty and mounting time will not change. The file system is fat32. The LOST.DIR folder will be created automatically after mount. For this Sony mobile, it takes about 50 seconds to mount the disk when it's fat32. But it will take a much less time to mount, when it's exfat. I forgot to count the time when it's exfat, it might be less than 10 seconds. I can not really test it now, because my drive has data now.

logcat usually helps.


text:
Why is Android rooting not as fragmented as iOS jailbreaking?
For Android rooting these days, it appears that Magisk is dominant, though there are some alternatives mostly for older versions of Android, e.g., CF-Auto-Root.
However, in iOS, there appear to be more options, e.g., checkra1n, unc0ver, and Chimera for iOS 12 and up (with specific exclusions), and a number of other jailbreaks for older versions of iOS.
Am wondering why this is the case? It seems that Android rooting is more narrowly focused on providing admin privileges, whereas iOS jailbreaks also bypass locked bootloader (Android phones typically just allow users to unlock the bootloader), and sideload apps, besides the admin privileges. So, one might expect there to be more alternatives for Android?
Or is it because Magisk is so good, that there is less need for alternatives?

you have answered the question yourself. android unlocking is official supported (except for huawei, amazon and some carrier locked phones). apple does not support development scene at all (closed-source)

I'm not sure I answered the question myself. As you said, since android unlocking is officially supported, then why don't more developers create alternatives for android rooting? Many people prefer to just use magisk or to developer modules for magisk?

got your point. but there is no company with commercial interest, only some geeks spending free time. there is no benefit of reinventing the wheel. these four common solutions are more or less just improvements of each other. Ask yourself why don't you develop another root solution? ;)

origin systemless-root method was formulated by chainfire, until he lost interest and abandoned. so we can see topjohnwu as successor, luckily he decided to keep all open source so others may take over one day. dees troy also becomes more and more busy with real life. customizing scene will flatten because lack of geeks and benefit of rooting, finally die when google decides to ignore linus torvalds rules completely and follow the apple strategy

Magisk is not comparable to an iOS jailbreak, because Magisk simply relies on an existing possibility to access a device on root level so that it can access and modify the flash memory directly (e.g. on an bootloader unlocked device via custom recovery ROM or an existing su/root access).
Instead iOS jailbreaks first have to execute complicated exploit chain just to get root access. Furthermore current jailbreaks are non-persistent, which means the bootloader and the kernel can't be permanently changed. Therefore an iOS jailbreak requires way more effort for reaching a same "state" at run-time that Magisk provides on Android.
This means in the end the jailbreaks have to be adapted to the iOS version and every jailbreak also has some disadvantages depending on the way the device is exploited.
Such problems are unknown to Magisk and therefore Magisk is way simpler to install.

Thanks for the informative answer, Robert. But that still leaves the question I asked - why don't we see more alternatives for android rooting out there? Why not other systemless root eco-systems out there, that might be comparable to magisk? Is it a case that the challenge of iOS jailbreaking just attracts more talent/interest for people who are inclined to work on such projects?

@auspicious99 My personal opinion is that is simply because Magisk is an open source project so everybody can collaborate and changes by the community are accepted. Where as on iOS side the Jailbreaks or usually only partially open source and to my experience releases are more "fire and forget" - which means that user feedback and changes are ignored (may be different among the different jailbreaks). Therefore on iOS the different jailbreak teams do not collaborate much at least this is how it looks to me.


text:
Chrome, autofill, and biometric security
One of the recently added Android features is biometric-protected autofill. It should enable something similar to iOS, where credit card numbers and passwords are protected by a fingerprint or Face ID.
However, with Chrome at least, this feature seems to not work: even if biometric security is enabled, no such auth is requested when autofill login forms (ie: with password autofill).
So: is it possible to enable biometric-protected password fills in Chrome with Android 10?

At the time of this writing (v87, Dec 2020), Chrome for Android doesn't support biometric-protected credential autofill.
This has been reported on Chromium Issue Tracker #1139045 - Security Feature: Only auto-fill passwords after user provides fingerprint or PIN on Oct 16, 2020, and acknowledged by a Chromium contributor.

Comment 4 by palmer@chromium.org on Tue, Oct 20, 2020, 5:36 AM GMT+7
[...]
we could potentially implement a feature where Chrome auto-fills passwords only after the user supplies their fingerprint or PIN. (Safari on iOS has this: https://support.apple.com/en-us/HT208109) I'll change this bug to a feature request.


text:
Issue with FTP over hostapd hotspot and specifically an Android client using ProFTPD
So I have been using this setup with an iPhone quite successfully.
The "server" box is running Fedora 34, on which is installed ProFTPD.
I went through and configured through the visual client the firewalld zone to allow the FTP service through, I even disabled the firewall to check.
I have an Android phone which is a tad aged. It's using Android version 5.1. I try to connect via an Android client and via the Chrome browser in the usual manner.
Now, on my server machine, I opened up Wireshark and watched the hotspot interface. Sure enough, ARP hits "Who is 192.168.x.x", no problem, reports the correct MAC and IP addresses. The FTP request is visible. Even pinging the device from the server works. But for some reason, no response is being sent back from the server, and it's not because it's blocked. The connection just times out.
I note that this only seems to be happening when I use this Android phone, it's a ghost in the shell scenario for sure. I'm going to try a different phone, shouldn't matter right? Makes no sense that it should matter!
The local login of the server still works and there are no options regarding bind address, so I cannot assume it's that.

If I remember correctly on Android you can not run services on the phone IP in the mobile hotspot Wifi. For that you need root and some fiddling with iptables.

that actually isn't relevant, hostapd runs on linux. it creates an ap to be connected to. As it turns out there is a far less buggy implementation of this called lnx-router that doesn't drop constantly !

Whatever the problem is it doesn't occur with this wonderful project on which I have not had ONE AP-DISABLED error occur or network drop thus far !
https://github.com/garywill/linux-router
Does the same thing with some extras and doesn't require tinkering with configuration files.


text:
Removable drive connected over OTG disconnects when screen turns off
I own a tablet with Jelly Bean installed. I usually connect a pen drive to it using an OTG cable and it works fine (except for NTFS file system and the below problem too). The issue is when the screen turns off after the time out while the storage device is connected, it disconnects itself. If I turn the screen on, it will be mounted automatically.
It is annoying to change the time-out now-and-then and keeping it on for a long time by touching the display.
Is there any solution to this?

An avenue I would explore would be to set DevOps to enable keep screen on when plugged in and then use a third-party option to trigger a "screensaver" (essentially an opaque black overlay) for battery conservation (despite it being plugged in?)

Check if you have any option in Settings (maybe Settings->Storage) to keep OTG connected in sleep mode.
If you don't find anything related to that, it means there's some bug with the ROM.
Maybe you can try this app: USB Autosleeper
This app doesn't allow the phone to sleep when USB is connected.
Whenever you connect OTG, run that app and do whatever you want :)

If you aren't able to find the setting for it through your system UI, you can also try finding it through this application.

While recommending an app to solve an issue is acceptable, this answer still lacks details on how it solves the issue (particularly what setting should be edited).

Hi @Andrew T., thank you for your advice, I can certainly understand what you mean.  In this particular case, I thought to contribute this application because it offers a means to directly access and edit various device .db settings files.  However, 1) more specific instructions would require more details such as the device specs and whether they have root access or not, etc.  2) Without such details, it's also uncertain whether the other answers already provided by others are sufficient to solve the issue.  In this case, would it have been better etiquette to post as a comment to OP instead?

There might be an option to change that in Settings. If you can't find it, look in Developer Settings. If you don't have that, go to About Phone and tap 7 times on build number.

It'd be better if you could be more specific on what settings the OP should find. Also, I couldn't find anything like that on "Developer options". I found "Stay awake", but that only prevents the screen from turning off while charging instead of connected to USB OTG.


text:
Notifications Randomly Rearranging Themselve
I have a problem where every once in a while my notifications just start to randomly rearrange themselves. It's odd, because they're still in my notifications bar and none of them ever disappear.
I notice that sometimes in the past it has occurred whenever I'm using GPS to an extreme level as well.
Can someone tell me why this is happening?

I am assuming you are on Oreo since you mention notifications shifting in order
From Android 8.0 Oreo, thoroughly reviewed
Notifications are ordered on the concept of attention based sorting, as pictorially shown

To quote relevant sections

The panel and notification ordering logic has been refined into a tiered top-to-bottom system. First, there's "Major Ongoing" notifications for things like currently playing music, phone calls, timers, Google Maps navigation, and other running, foreground services. Below that are "People-to-People" notifications, which are incoming text messages and missed calls from various apps. After that are "General" notifications for e-mails, reminders, calendar appointments, and all other apps.
P2P notifications also get to be bigger in Oreo
The new bottom section, which Google has given the perfectly fitting name of "By the Way," houses single-line, minimized-by-default notifications that don't create a status bar icon....The idea is that this section can house notifications that you don't need to deal with right now but might be useful information for you to have...

This explains why you noticed this shifting more when your GPS was on (presumably navigating and this takes high priority


text:
Are there ways to do factory re-set on LG phone by connecting to laptop via USB?
Are there ways to do factory re-set on LG phone by connecting to laptop via USB?
================================================== ==
I did review similar questions on internet, but the links provided for adb is broken.
I have LG tribute HD 4G LTE smartphone with Android (6.0 Marshmallow). It worked good but White Vertical Lines showing up now.
I took the battery out an put it back after a while. It did not fix the issue.
This phone did not expose to water.
The bad screens display vertical lines with a white background. Has anyone else had this problem?
If I press power on button, the screen with white lines comes and screen goes black. I am not able to get to dial pad to do unlock/re-set.
Is there any way to do factory re-set, by connecting the smart phone to computer via USB?
Any idea to fix this ?
I did download android studio, but I did not find an option to do reset my phone via USB.
I did find some steps using adb command line, but I am not sure what are the adb tools required to do.
I did find android studio, installed platform-tools at

C:\Users\<user>\AppData\Local\Android\Sdk\platform-tools

adb root
throws:
adb: unable to connect for root: no devices/emulators found

Thanks for helping.
I am not able to enable USB Debugging from my phone, because vertical white lines is not allowing me to use phone screen
Here are the adb commands/results, I tried.

>adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully

>adb devices
List of devices attached

>adb shell
error: no devices/emulators found

Thanks for your guidance.

Fe-flashing the firmware using a PC is what you need.

Thanks for your suggestion, Is there a thread/tutorial to show flashing the firmware using a PC steps? What are the tools /software required ?  I am not able to enable USB Debugging from my phone, because vertical white lines is not allowing me to use phone screen
Here are the adb commands/results, I tried.

adb devices
List of devices attached

daemon not running; starting now at tcp:5037
daemon started successfully

adb devices
List of devices attached

adb shell
error: no devices/emulators found Thanks for your help.

https://forum.xda-developers.com/android/help/lg-tribute-hd-ls676-stock-firmware-t3595963

Thanks. I did review the links. Some folks claims their device was dead after using the software, that caused downgrade. How do I make sure, my device will be safe after this ?

Believe. Some users wouldn't post/recommend it if their device wasn't  fixed by that file.

the zip file extracted to LS676ZV3_00.oct , how do I run this file ?

http://lgtribute.com/lg-tribute-hd-ls676-stock-rom-firmware-unbrick-guide/

I did download 4 items listed there. I connected my phone via USB to PC. It shows white vertical lines, LGUP complains "There is no handset connected, please connect a handset. The device is showing in windows explorer.


text:
Internal storage /emulated directory
I am trying to clear some internal storage i have in the emulated directory two identical folders one /0 and one /legacy both have exact same files can i delete one?

They don't have the same files; they point to the same files. I won't recommend deleting them.

They are the exact same file size

Well, create a file in 0. Does it pop up in legacy as well?

Yeah it does added the pics above i created newnew in 0 and it showed in legacy

Those are called "links", very common in Linux operating systems.
Chances are, your files are actually in neither of those directories. On my phone, the actual mountpoint of the partition those files are on is /storage/sdcard0.
From there two links exist. One to /storage/emulated/legacy and one to /storage/emulated/0. The emulated in the filename also suggests that both location are just, well, emulated.
This can vary from device to device, for example on an HTC I have here /stoage/sdcard0 is just a link to /storage/emulated/0 instead of the actual mountpoint.
That said: If you delete a file in one place, it's completely gone out of all two (or three) "places". The files have the same file sizes, but don't occupy twice the space on the partition. It is actually the same file. By that I mean it all points to the same place on the actual partition on your storage chip.
You can read more about links here.

Thanks thats what i was wanting to kno had it doubled up

Good explanation, answerer.

@lm2018 If I answered your question I'd appreciate you accepting my answer (little ✓ on the left of the answer).


text:
Unable to install PyCrypto
I'm installing PyCrypto because it is a dependency of another package. The installation always ends in an error in Termux (pip install pycrypto):
Command "/data/data/com.termux/files/usr/bin/python -u -c "import setuptools, tokenize;__file__='/data/data/com.termux/files/usr/tmp/pip-install-ip9yqged/pycrypto/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /data/data/com.termux/files/usr/tmp/pip-record-_ac102nh/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /data/data/com.termux/files/usr/tmp/pip-install-ip9yqged/pycrypto/

The other Python packages have so far installed succesfully.

PyCrypto uses C code that needs to be compiled when installed. Therefore you need a fully working C compiler/build environment (e.g. gcc/clang plus tools and develop libraries and headers).

Try installing a C compiler like Clang provided by Termux:
apt install clang


text:
What is this pop-in from the bottom of Chrome for Android?
I'm suffering from a pop-in, coming in from the bottom of the screen, in Chrome for Android.

It seems to be doing a Google search with whatever text I may have tapped. There's no button to close, and it's much more of a nuisance than a help.
What is it, and how do I turn it off?

This is Chrome for Android's feature known as Touch to Search.
The user can tap a word to let Google search quickly without leaving the current page.
From Google Chrome Help - Search the web on Chrome,

Search for words
You can find more info about a specific word or phrase on a page with Touch to Search.
Important: To use Touch to Search, Google must be set as your default search engine.

On your Android device, open the Chrome app.
Open a page.
To highlight a word on a page, tap it or touch and hold it.
To show search results for the highlighted word, tap the panel that opens at the bottom of the page.

Turn Touch to Search on or off

On your Android device, open the Chrome app.
Tap More > Settings > Google services.
Tap Touch to Search.
Turn Touch to Search on or off.


text:
What is the most modern mobile browser possible to install into an old Android 1.5, 1.6?
I got in my hand an old Sony Ericsson Xperia X10 mini pro from 12 years ago and this is a quite nice, beautiful, and outdated Android. I do have however interest in seeing how modern mobile apps behave on this device.
The default Android browser simply doesn't open any page anymore, but I got it rooted and installed the first Opera version (6.x) I found on APK Mirror.
Does anyone know which exact version is the most modern browser that this Android 1.6 device can run?

Based on the data from Wikipedia this phone has only 256 MB RAM, which is a very very small amount. So even if you find a working web browser just opening the web browser will most likely require more RAM than you have. I would assume that app you test simly crash directly at startup or a little time later just because of missing RAM.

Cross-checking the Wikipedia entry for Android web browsers with APK mirroring sites, looks like only Opera 12.1 is supported on Android 1.6.
For references:

Browser
Android version

Brave Private Web Browser
Android 4.1+

CM Browser
Android 4.0+

Cliqz
Android 4.4+

Ghostery Privacy Browser
Android 4.1+

Dolphin Browser
Android 2.0.1+

Dolphine Zero
Android 2.2+

Lunascape
Android 2.2+

Firefox
Android 2.0+

Firefox Lite
Android 5.0

Google Chrome
Android 4.0+

Kiwi Browser
Android 4.1+

Lunascape
Android 2.2+

Mercury
Android 2.3.4+

Microsoft Edge
Android 4.4+

Naver Whale
Android 5.0+

Opera Browser
Android 1.5+ (10.1.1011151737), Android 1.6+ (12.1)

Opera Mini
Android 2.3+

Samsung Internet Browser
Android 4.4+

Sleipnir
Android 4.0.3+

UC Browser
Android 2.1+

Vivaldi Browser
Android 5.0+

Waterfox
Android 4.1+

Yandex Browser
Android 4.1+

Note however that despite the possibility to install Opera 12.1, it's still not guaranteed that most modern websites will open due to HTTPS-only and only supporting TLS 1.2 and above, which is only supported since Android 4.4+.

I am not sure if the TLS version of web browsers is really an issue. as this only affects the Android Java API but web browsers are usually written in C/C++ and most likely contain their own SSL/TLS library.

Another point is that a small APK size can imply that the app is just a skin over the Android framework WebView which prior to Android 5.0 was only updated with a ROM update. An old embeddable engine for Android 4.0+ results in a APK of about 20MB


text:
Google Calendar displaying the same events for different users. Why?
I am trying to use Google Calendar. I have different accounts registered in the Google Calendar Android app. Each of these corresponds to a different phone user in my household or to one of my virtual accounts.
What I can't understand, is, why are my calendar events staying the same when I switch users in the circle in the upper right-hand corner of the app?
The following images display the same calendar entries for both of the users I have switched in the app.
.
Thank you for your help.

This is actually a function of Google Calendar. Most people want to make sure they can see their entire schedule at a glance, including events that belong to different accounts.
If you pull out the sidebar from the left hand side (either by sliding from the side or using the "hamburger" (three lines) menu) you can see which calendars are being displayed from each account and toggle them on and off with the checkboxes. The selections you make with these checkboxes are "sticky" per account, so when you switch to another account, you can make a different selection there.
Please note that some calendars may be hidden from this menu at first; they'll need to be enabled under Settings > [pick an account] > Show more > tap on calendar > Sync.


text:
When was "Show zoom option in main menu" implemented on Chrome for Android?
When did Chrome on Android allow us to "Show zoom option in the main menu"? I just found this out yesterday and now I can zoom in and out on websites like Safari for iPhone.
When was this implemented?

"Show zoom option in main menu" first appeared on Chrome Beta v111.0.5563.15 on February 9, 2023, and on Chrome stable v111.0.5563.48 on March 3, 2023.
The first appearance of the current menu title was on January 25, which was included in Chrome Beta v111.0.5563.15
       <message name="IDS_PAGE_ZOOM_ALWAYS_SHOW_PREFERENCE_TITLE" desc="Title of the preference that allows the user to always show the menu item for zoom">
-        Show zoom
+        Show zoom option in main menu
       </message>

It was not until 27 February that the feature was officially introduced.

Customize your Android
You can now easily increase the size of content on Chrome — including text, images, video and interactive controls — by up to 300% to suit your vision preferences while still preserving the page layout. This includes the ability to set your preferred content size as a default so you don’t have to change it every time you open up Chrome. Try it today within Chrome Beta via Settings > Accessibility, before it officially rolls out in March.

According to APK Mirror, the earliest version of Chrome stable after this Chrome Beta was v111.0.5563.48.

Btw. What keywords did you type in Google? I couldn't find anything on page zoom on site:stackexchange.com or even a simple Google search

@BigJoe I googled "show zoom option in main menu chrome android" and found an article by The Verge which linked to the official announcement. Then I searched for the APK of Chrome Beta on APK Mirror, which linked to the Chrome Releases blog, filtered by tags, which then linked to the Git log, and then searched for "zoom".


text:
What are the absolute minimum required Permissions I need to download from Play Store?
I have a tablet I bought for work, and as I don't really need most of the apps on it, I am shutting down and disabling all the Google/Android Services I don't need.
Seeing how I need to download some apps I need for work, I need to know the absolute minimum requirements in terms of Permissions (e.g., do they need access to Files and Media, and Contacts?) and Connectivity (would cutting access, e.g., to Contacts make a difference if I were connecting by Mobile Data or WiFi?) that I need to allow Google Play Store and Google Play Services, as well as any other apps/services that I need to allow at the time I am downloading apps to allow me to install them.
Another really important reason I am doing this, is for security, since thus far, almost every device I have used has been hit by some kind of infection, and I'm hoping that shutting down and disabling Services and Apps I'm not using will making it harder to infect my device.
If there is a general answer that applies to all Android versions, I would prefer that. Otherwise, I am looking for answers that apply to Android 10 and over.

Play Store has an irrevocable INSTALL_PACKAGE permission that allows it as a system app to install apps without other assistance.
Based on quick testing by disabling every possible permission on Play Store and Play Services from the app info, it is still possible to purchase, download, and install apps from Play Store.
Referring to the Open GApps Pico package for the absolute minimum GApps installation:

Google System Base (invisible?)
(Google) Android Shared Library: no permissions requested, cannot be disabled
Google Play Store: only requires Files and media
Google Calendar Sync: unrelated to Play Store
Dialer Framework: unrelated to Play Store
(Google) Package Installer: no permissions requested, cannot be disabled
Google Play Services: only requires Physical activity, though unrelated to Play Store, cannot be disabled
Google Text-to-Speech: unrelated to Play Store
Android Auto stub: unrelated to Play Store

Note that this only guarantees app purchase and installation. Apps that rely on Google Play Services might not work correctly without additional permissions allowed.

Additional reading:

Would disabling the package installer prevent updates?
Install apps silently, with granted INSTALL_PACKAGES permission

This is really helpful, but now I have to ask: if I am able to download and install apps with these permissions revoked, does that mean a malicious app or attacker might be able to do that too?

@user_dn34297 unlikely but possible. Play Store has an irrevocable INSTALL_PACKAGES permission that will only work as a system app. (Ref: Would disabling the package installer prevent updates?, Install apps silently, with granted INSTALL_PACKAGES permission)


text:
How do I invoke "su" from a terminal prompt?
I can get a root prompt in the terminal by running one exploits documented elsewhere. (e.g. here: http://wiki.cyanogenmod.com/wiki/Motorola_Droid_2_Global:_Full_Update_Guide)
At this point, I can install the "su" binary and give it permissions 4755. This should allow anyone to execute it, and since the owner of the binary is "root" and the sticky bit is set, I should become root.   But I apparently have no way of un-become root from the terminal short of rebooting.  But, after I reboot, then I can't seem to become root using 'su'.
$ ls -l /system/bin/su
-rwsr-xr-x root    app_101    26234 2012-07-09 15:00 su

Ok, the permissions look fine, should I should be able to run it to become root, but only in this particular invocation of the terminal.
$ /system/bin/su
Permission denied

It also fails if i specify the command to run as root, or with any other arguments:
$ /system/bin/su /system/bin/sh
Permission denied

Why?  Is there some other mechanism at work?  I don't want to install Superuser.apk, because I just want a way that I can temporarily get a root shell if needed, for instance to delete unwanted files manually.  Besides, Superuser.apk relies on the su binary anyway, so it must have some way of calling it, so why can't I replicate that in the terminal?
Edit:
I had another thought, so I tried copying /bin/sh to another locattion and made it suid root.  But while I can execute the new binary, it doesn't give me root.  Is Android doing something tricky/different with suid that regular Linux does not do?

Having an unprotected 'su' on the device is pretty risky, as anything that attempts to use it will get it without any of the user confirmation that things like that superuser app try to add as a gateway.

Right, well... I was trying to plan ahead.  Wasn't sure how a subsequent update would try to get rid of su, so I put it in a bunch of difference places with different names.  Turns out the update removes the sticky bit, and I can't run suid from places other than system.  Ah well.

The clue is in the owner/group id...
$ ls -l /system/bin/su
-rwsr-xr-x root    app_101    26234 2012-07-09 15:00 su

Notice the group id is set to 'app_101', that should be 'root', but then again, you need the busybox binary (which is part of the SuperUser.apk binary, when installed, it copies the relevant said binary into /system/xbin) in order to be able to chown it.

Yes, this would be a problem  Ultimately busybox is not needed as stock android chown can change the group as well, using chown user.group filename (at least from Froyo-ICS)

Try adding the -c option. e.g.
su -c sh

or
 su -c 'echo bogus'

(for more arguments)

A bit more digging and I think I have turned up the answer.  The reason it is not working is because the Terminal app does not request super-user permission in its manifest, e.g.:
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>

This extra layer of security appears to be because the terminal application is a java application, although it does a good job of hiding it.  The Superuser appears to shim things somehow so java apps can get this permission, even if they didn't know they needed it when they were created.

ACCESS_SUPERUSER permission is not connected with your problem


text:
How to disable bottom app toolbar on Samsung Tab running Android 12?
I have Samsung Galaxy Tab S6 Lite and until today the system toolbar (placed at the bottom of every app) consisted of 3 navigational soft buttons. Those buttons were centered and easy to access
With the latest update it is no longer true -- the central part of this bottom pane now took app toolbar (with important and recent apps). The navigational buttons are now pushed to the right and they are not as easy to access as before.
How do I get rid of this new app toolbar?
Current system info states: Android 12, One UI 4.1.1.

The "bottom app toolbar" is known as the Taskbar and has been introduced since Android 12L.
To disable it, go to Settings - Display, and then toggle "Taskbar" off.

Image courtesy of 9to5Google - Samsung (mostly) disables Android 12L’s taskbar when you use a third-party launcher


text:
Chrome displaying :D instead of the number of opened tabs. How to know the real number?
When the number of tabs in Chrome reaches 100, the tab counter turns into a smiley face like :D.

I wish to know how many tabs are open, without doing the manual count. Is there a way?

A more technical approach is to use adb and chrome_devtools_remote to get a list of ALL open tabs

Short how-to:

Install an Android SDK, we only need the adb.
Connect your phone to your computer via a cable.
In a terminal, run this to get a list of connected devices:

./adb devices -l

Run this:

./adb forward tcp:9222 localabstract:chrome_devtools_remote

Open http://localhost:9222/json/list on your computer to get a JSON list of your open Chrome tabs.
In short, the count of the { characters in the JSON is the number of tabs open in your Android Chrome.

Read how to do this in full at "When you never close tabs on your mobile Chrome browser" by Marcin Piczkowski, in Dev.to

This is a bit technical but very useful, as it allows you to export a list of all the urls and mass-close them on the phone. I tried it with success a few months ago.

Google Chrome on a Galaxy Z Fold4 (as of April 20th, 2023):

Tap the "Switch or close tabs" button (i.e. the ":D" button)
At the top right, tap the vertical ellipses button "⋮"
Tap the "Select tabs" menu item
Tap the "⋮" button again
"Select all"

At the top left, look at one of the shocks of your life:

I've also verified it also counts tabs in groups.

Works for me on PIxel 6 phone as well. Thanks!

Works as of 2024 on an old android 9 tablet running chrome 120 with 2373 open tabs

Thank you! This explains why Chrome is so slow changing tabs. I have almost 6,000 open.

This is an Easter egg coded 4 years ago
From this XDA post- you need a rooted device  ( you can't access /data/data/ without root )

Download a root explorer capable app such as ES file explorer

Navigate to chromes profile directory, mine was at /data/data/com.android.chrome

Open the app_tabs folder

You should now see a single folder labeled "0"

Select it and open its properties, under file count deduct 1 and that will be how many tabs you have open currently, deduct 1 because 1 file in there is only an overall tab state file

Verified on my device  ( Moto X Play, 6.0.1, Chrome 52.0. 2743.91) when the tabs open are 4 = Files (5) minus one

There is actually a way to see how many tabs you have open without rooting the device or doing any other things people are suggesting
Just simply, enable Talkback mode in accessibility features. Then when you hover (if you have Bluetooth mouse enabled) or tap the tab icon (with your finger) (the :D), it will tell you how many tabs you have open. Like on mine, it said 713 tabs open.
(warning, with grouped tabs (more than 1 tab in group) it counts that as 1 tab it doesn't count them all. so if you have 7 groups of 100 tabs open it will only say 7(show too))

Does this still work? For me it didn't say a number. However when I had TalkBack on, the tab grid became a simple scrollable list, so it was much easier to feel the amount.

@TWiStErRob it is no longer working for me. It worked for a few years, but sometime in the last 2 years I think it stopped working.

Beside the answer of Mat, if you have a stylus (like Samsung Galaxy Note), you can also hover on the tabs [:D] button to see your open tabs count.

Update 2022-10-01
This now shows "Switch or close tabs", it doesn't show the tab count anymore.

How to count your open Chrome tabs in Android by looking at your synced Android tabs (done from a computer)
This is really dumb that Google won't just show the number in Chrome on the phone instead of showing :D past 99 tabs, but this is the best I can come up with. (GOOGLE, PLEASE FIX THIS!)
Note: if someone knows how to use the Google APIs I wonder if they can script this and count this automatically!

On a computer, NOT on a phone, go to your "other devices" Chrome history, and find your phone device (for me it is "Pixel 2"). Note: for this to work, you must be signed into the same Google account on both your computer's Chrome browser as well as in your phone.

In your Chrome browser, press Ctrl + H, then on the left side, click "Tabs from other devices"
OR, in your computer's Chrome browser, just navigate straight to here: chrome://history/syncedTabs

You'll see something like this:
Find the location to the left of the first icon next to the first link in the list. This location is marked in yellow in the image below. Left click on this location and drag right to highlight a word or two, as shown here:
Now manually scroll down the page until you find the last link in the list for this device (where this device is your phone, or course). Once there, Shift + Click at the end of the last row to highlight all the way down to the last row, as shown here. I clicked at the location marked in yellow: .
Now, use Ctrl + C and Ctrl + V to copy-paste all of this into your favorite text editor/code editor which shows line numbers. I like Sublime Text 3. I think it's great!
Voilá! The number of lines you have is equal to the number of tabs you have open in Chrome on this device--which is my Google Pixel 2! I have 494 open tabs: . Indeed, this is way too many. Next question I have: how do I mass-close them?: How do I close all, or many at once, Chrome tabs on Android on a phone?

If someone can script this process, please do! You may even be able to make it a Javascript bookmarklet or something which is runnable in Chrome on a PC or phone? I don't really know Javascript, but here are some of my favorite bookmarklets I use regularly in GitHub code review, for example, if this helps get you started writing bookmarklets to solve this problem: https://gist.github.com/ElectricRCAircraftGuy/0a788876da1386ca0daecbe78b4feb44.

According to my technique above, I just closed 504 more tabs! But, when I used the close all tabs option in Chrome on my phone, it said it closed 665 tabs. I think my phone was counting tab groups too, so 504 tabs + 161 tab groups = 665 total, which is what the phone reported when I mass-closed them.

There's a new way to find number of tabs now - that doesn't require complicated steps or connecting to a computer:

Select top right action
Click on the select tabs
Then click on select all from top right menu again

You get the total tab count

Thanks for the answer. The "Select tabs" option is not there on my phone. Which phone/Android version are you using?

Hey, I am on OnePlus 9R, Android 13, Chrome 120.0.6099.43

Brilliant find! This worked for me on a Google pixel 7 pro running Android 13.

With some experimenting, swiping and manual counting, I've found that swiping will move a max of 25 tabs each time (depending on how strong you swipe). I think this is a programmed constant, although I haven't checked if the code is available to confirm the number.
My shortcut for counting tabs has become to swipe from one end to the other, counting the number of swipes, and multiplying by 25, giving a good enough approximation.

Another way u can use on every operating system you want, is to check google account sync review . It will show you how many tabs you have opened on all devices you have this account on (if more than one device). Shows you bookmarks and some other information.
Anyway i don't know why but i think it doesn't count chrome tab folders because i used another way before (from answers here, using google select all tabs.) And it was different from that. Anyway i hope it helps but the better a easier way is what Mohammad Badrah said up there in answers.


text:
Cannot view PDF files inside an iframe on Chrome for Android
I have this screenshot displaying a PDF in an iframe on Chrome for Android. My device is Samsung Galaxy S9+.

When I click on the open button, nothing happens.
I've also opened the same page in the default Samsung Browser and the PDF begins to download immediately.
Does anybody know what is going on with this PDF on Google Chrome?

AFAIK, unlike its desktop counterpart, Chrome for Android (and also iOS) doesn't support opening PDF files directly inside the browser. (Possibly related: Open PDF files directly in Chrome for Android)

For anyone looking for more information on this topic, I never figured out a way to display the pdf in an iframe. Instead, I setup a download link to an html element to allow the pdf to be viewed outside of the browser.
I first had to convert the raw data to an object URL like so:
const byteArray = new Uint8Array(atob(rawPdfData).split('').map(char => char.charCodeAt(0)));
const pdf = new Blob([byteArray], { type: 'application/pdf' });
const pdfUrl = URL.createObjectURL(pdf);

After this, it was simple enough to create a download link:
const pdfDownload = document.getElementById('pdfDownload');
(pdfDownload as HTMLAnchorElement).href = pdfUrl;


text:
How to disable cutting sound to headphones at moments of low volume during playback?
Since starting to use USB-C headphones (my new phone has no audio jack), I have noticed this (to my ears) very annoying issue: during playback of any audio, the sound output will be cut during moments of (very) low volume in the audio stream. For example: listening to an audiobook, after every sentence, when the narrator pauses, you will hear a noticeable cut of all sound output, where normally there's always a little white noise in the background.
I guess it's an optimization of not sending any audio signal when there is nothing to be heard, but to me, these constant breaks in the background white noise are very annoying. As a reference: this did not happen when using the audio jack on my old phone. The background white noise was just always present during playback.
I tried to research this issue, but it seems to be almost impossible to set the right search terms or no one else is complaining about this, although I find the latter hard to believe since my partner experiences the same. Also, in the Android settings, I cannot find anything related to this.
Still, I hope there is a way to resolve this. Either by applying a certain (advanced) setting or maybe by using some other workaround trick. Any insight and/or help in this matter is much appreciated, thanks!
P.S. I assume this is standard Android behavior for USB-C headphones and not headphone-specific. Please enlighten me if I'm wrong.

Android knows when audio playback is active or not so stopping audio transmission via USB-C on low volume doesn't make sense in my opinion. Therefore my guess is that it is caused by the headphones. May the the headphones use an integrated digital-analog converter which is shut down on low volume.

FYI there has been reports of this since early days of Android: 1 2 and there is an issue for AOSP: 3

@Robert It is not caused by the headphone. (1) This issue has already been reported by many people (2) You can try using the same headphone but attached it to a Windows device, or with an iPad (that comes with USB-C) using the same adapter. You won't get any sound cut off.

I have the exact same issue with two pairs of USB-C headphones on my brandnew smartphone, while my old one with analog audio jack does not show that problem. I am not so much annoyed by the cut out silence but by the missing beginning of each sentence after a brief silence in podcasts or songs. There really is missing information, half or full syllables being cut off ten times per minute. I am so annoyed, I could scream instead of fall asleep with my podcasts. How can this be left unaddressed in Android?!?

From what I know, this is not easily achievable. There is no built-in setting for this, although you may get around the issue using (1) a ROM with a patched kernel and (2) a third-party app.
This has been reported since the early days of Android (1, 2), and there is an issue on AOSP that is marked as "won't fix", although I don't agree with that assessment. This might get more traction and get addressed if someone can confirm that (1) This is indeed a problem in AOSP and (2) creates an issue that clearly states that this is not a problem in custom ROMs.
This may also be related to the fact that the output volume for USB-C headphones/headphones using USB-C adapters is applied by software rather than using DAC hardware volume. In other words, Android applies the system media volume to the sound signal and then sends it to USB-C, during which the sound may be distorted/filtered (1, 2). There are reports that you can use the Hiby app or USB Audio Player PRO app to control the volume of the DAC, which may help fix this issue. (I did not have luck there.)

With everything I have read on forums or discovered on Amazon product reviews (the complaints), I believe that this has little to do with the phone or the wired headphones/earbuds. I believe this has a lot more to do with the DAC chips in the USB-C "adapters".
The USB-C adapters are actually miniature digital-to-analog converters with a small amplifier built into the connector.  The DAC chip (Digital to Analog Converter) may be muting itself (gating the sound output) when volume levels are very low or nonexistent in order to reduce hiss or other noise.
This may simply be a matter of trying different USB-C converters until you find one that doesn't gate the sound during silence.  I don't know of any in particular, yet.  But, I imagine a more expensive and well-known brand would have a higher likelihood of not doing this.  I don't know, but I do know that the cheaper ones that I have purchased absolutely do, and it's really annoying.
I think Sheldon's answer may be right.  If you run a sound-generating app that can produce a frequency that is imperceptible to you, it may keep the DAC chip from gating/muting the sound, and thus, it may not give you that loss at the beginning of your soundtrack.
I did have Unity Intercom running and noticed that my audiobooks and Duolingo did not fade the audio up at the beginning of the sound, even though there was no audio on the Unity app at the time.
I'm gonna play around with this some more and will update with anything new that I discover.

It is not the adapters. You can tell that when you connect it to an iPad via USB-C and everything suddenly works great with the exact same song/audiobook. You can throw more money at adapters, but if the OS does not output audio, it will not help.

I was happy to come across your post as I have had the same issue on multiple Android devices. Initially, I thought it was the specific device, but after having the issue reproduce itself on a new device later on, I re-initiated a search on this. Unfortunately, I agree with the same conclusion in that either no one experiences the issue or simply finds another alternative (non USB-C headphones if possible, etc.) or simply lives with it (as I have had to do on occasion). It is annoying though as I either have to bump the volume so that even the quiet parts have the background noise fuzz loud enough for the audio to not cut out or simply deal with the cut-outs.
The issue is not related to the headphones as the issue does not exist when used on Windows devices for example.
The only solution I have found is to use a frequency generator, put it on a low Hz so that you only have the white noise remain, and then play whatever audio you wish to play on a low volume (I too fall asleep with audiobooks, etc. and the cutting out is annoying).
Yet to look into whether specific frequencies are a bad idea in terms of sleep etc., but thought I'd give you a potential workaround if you have not yet found one or wish to consider it.

Hi Sheldon, thanks for your reply. Indeed such an annoying issue that should not be too hard to solve on the Android side I'd say. I also recently found the workaround you described. You can also set it to a very high (non-audible) frequency. As long as something is playing in the background, the system will keep the audio channel 'open'. Not ideal but at least it works. Thanks for taking the time to write your answer!

Really doesn't feel like this should be the solution but a frequency generator set to max has done the job. Astonishing noone at androids thinks this is worth fixing

For those looking for specific app that will work for this matter, "Frequency Sound Generator" in google play did the work for me.

The problem is the USB-C adaptor, for some folks anyway. Get headphones with a USB-C plug. I have a Pixel 6a, and some basic Lenovo USB-C headphones worked perfectly for me.
I'd been enduring this problem for nearly two years with my Pixel 6a and my USB-C adaptor + 3.5mm headphones. In my naivete, I actually thought all the various videos and audio streams I'd been listening to had been "compressed" or something and that the low-volume cut-off was normal. Finally, after growing a bit frustrated during a recent streaming binge, I searched online and landed here. A longer answer here mentioned the adaptor being a potential problem, so I tried some $10 Lenovo USB-C headphones, and the problem is gone.

This is indeed an issue that needs to be solved. It's part of the ALSA configurations, so that's why custom ROM developers usually patch this.
The best workaround I found, simply because it's what I use, is to use external DACs. I personally love this one: iFi's GoBar Kensei. This doesn't give either the cutoffs or the clipping I usually get with usual headphones. I am using an S10+ and an S20 Ultra, both running OneUI 6.0 and the March security patch, for reference.


text:
Chrome cannot play videos on MSNBC news site
I am stuck on this issue. My Samsung Galaxy A7 Lite tablet (SM-T220) running Android version 13 and Chrome 111.0.5563.116 has a strange issue. Until a few weeks ago I had no issue playing MSNBC news videos. Click, unmute, and play without issue.
Cannot connect this issue with an upgrade, so this could be the issue but, one day suddenly a few weeks ago, MSNBC videos will not play when accessed through their website (https://www.msnbc.com/).
Any other website videos play as they did and should. Just MSNBC will not play. (No, I do not want to use the MSNBC app, sorry.)
Chrome Version 111.0.5563.110 (Official Build) (64-bit) on my laptop (Debian 11) still plays MSNBC videos. Chrome on my desktop (ArchLinux current) Chrome plays properly. (None of the installs have any extensions installed.)
I have tried various Pi Hole settings for my Samsung A7 client with no love.
I have tried what I think is everything. Any suggestions on what to try/test/adjust would be greatly appreciated.

Have you tested if MSNBC videos work on a regular internet connection without Pi hole?

Both my laptop and desktop use Chrome and both can view MSNBC videos. My tablet, no video, only a black screen where the video should be playing. Enlarging to full screen makes no difference. The black screen continues. I think this fact may eliminate it being a PiHole issue.

I'm having the exact same problem on my A7 Lite. So weird!

So, I tried on Pixel 3a, Android 12 and Samsung Galaxy M12, Android 13. On both devices, Chrome cannot play videos on MSNBC. Looks like there is an issue with the site because of how it loads the video chunks.

I am going to agree with Andrew T. post. Due to that post I checked my cellphone (Samsung 8? running Android 9 with Chrome 111.0.5563.116) and it will not play MSNBC videos either. So it leads me to believe that there has been an update to the MSNBC website that has broken video playback. However, on both devices, my tablet and my cellphone, MSNBC "Live TV" plays. This leaves me with one option (as I see it) to wait . . . patiently . . . I'm getting older, HURRY UP MSNBC, fix your code!!


text:
Why is TOTP two-factor digits behaviour different between Android and iOS implementations of Google Authenticator?
I have the below QR code generated from my application so users can use their phones for a time-based OTP. For Google Authenticator in iOS, scanning the QR code correctly leads to an eight-character time-based OTP generating every 30 seconds. However, on the exact same Google Authenticator in Android, it incorrectly generates a six-character string instead.
I have provided the sample string and QR code below (it's from a test system) - does anyone know why the implementation of the functionality differs between the exact same app on Android and iOS, or alternatively where I can find developer documentation for either the otpauth protocol or Google Authenticator itself (both seem thin on the ground and I've had to take what I can from tutorials)?
Sample string: otpauth://totp/test@email.com?secret=GQ2DOMBXGRCDCMRSIVBEEOJSGMZEEQ2F&issuer=TestApplication&algorithm=SHA256&digits=8&period=30
Sample QR Code:

While the Play Store version of Google Authenticator is proprietary, there is also an open-source version.
Browsing through its wiki for Key Uri Format, there is a remark for digits parameter.

Digits
OPTIONAL: The digits parameter may have the values 6 or 8, and determines how long of a one-time passcode to display to the user. The default is 6.

Currently, on Android and Blackberry the digits parameter is ignored by the Google Authenticator implementation.

So, apparently, the digits parameter is ignored in the Android version (along with other optional parameters like algorithm and period that are ignored on all platforms).
As far as I have tried searching for the specific reason why it is not implemented, I could not find it.

Thanks for that - what an odd thing to be different between the two versions. I'll mark this as the accepted answer. Looks like we'll be recommending a different app to our users that works properly across both platforms...


text:
Is there a way to enable Android debugging by PC?
I'm trying to turn on debugging on my Samsung Galaxy J5 so I can use adb shell rm /data/system/gesture/.key and unlock my phone screen so I don't have to reset it and lose all its data (but it's locked with my PIN). For that, I need to know how to debug it just by the Command Prompt.
Is there a way to enable Android debugging by PC?

You cannot. adb daemon can be only started by android OS.

There is no point pursuing this course of action. Deleting any file under /data/system requires root access. Android doesn't provide any way to users to access powers of root. A user has to resort to system hacking (called as rooting the device) to get root access. And in that process, most of the time the user data is wiped in the process.
In short, even if you somehow manage to enable and authorize USB debugging the problem of "no-root-access" would stonewall you. And if you try to root the device, you will end up deleting all of your data -- the very thing you want to avoid.

My advice is to try this with recovery mode.
Download a custom recovery like ClockWorkMode or TWRP for your device. Then enter in recovery mode by holding Vol Up and pressing power. The recovery will give you root access with no need to grant permission.

Doesn't flashing a custom recovery need an unlocked bootloader, and that also mean wiping the data first?

I'm sorry Andrew, you are right, it does require OEM unlock to boot on TWRP recovery mode. I think Firelord's analysis is correct. It cannot be done.


text:
Does Android AOSP communicate with third-parties?
I'm trying to eliminate all Google and Meta services from my digital life. (I don't like their policies.)
So I thought about buying a new smartphone, removing the pre-installed ROM, and installing Android AOSP without Google Gapps.
However, the question I would like to ask is whether programmatically, a lot of information from my AOSP smartphone will communicate some information with Google despite not using their services. Is removing Gapps enough, or could something else be done? Is there empirical evidence in the code that confirms this?
Considering that for web browsing I would mainly use Mozilla Firefox with DuckDuckGo thus avoiding any Chromium-based browser, and for messaging Telegram downloaded from their Website. (I haven't used WhatsApp for several years.)

Just saying. Not using google in some way is pretty much impossible. You can see in this page's source code that https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js for example is accessed which is hosted by google as you can see in the url, so even using this website makes you connect to google in some way

Recently? Google bought Android 18 years ago...

@Ivo Yes, well, actually from this point of view you are absolutely right. It is difficult to replace some libraries that depend on CDN. However, the whole thing is to reduce data exchange with Google to zero, or close to it

Possibly related/duplicate: FakeStore, BlankStore, GMS, MicroG, UnifiedNLP - what's best for Android without Gapps?

A very large portion of the applications for Android depend on Google Play Services and Cloud Messaging, even if you don't want to use a Google account. AOSP and most alternative "Google-free" Android distros like LineageOS are therefore not very useful for running anything until you install the core Google Apps suite, including Play Services, on them. And then you're back to Google controlling your phone.
Unless you just want to run some unpolished FOSS apps off F-Droid, there are basically two ways out of this that get you near-complete Android app support:

microg - a minimal alternate implementation of Google Play services and other system components, not controlled by Google. It will connect to Google services for the purposes of cloud messaging and to login to a Google account if you want to do that (e.g. to use with the GMail app or YouTube app, if you choose to install them, which you can do as normal unprivileged apps). Unfortunately, in order for it to work, the system has to lie to apps that microg is the real Google-signed Play Services, and most popular distros, including LineageOS, refuse to do this, despite it being the right and necessary thing to do. (LineageOS will even ban you from their IRC channel or other support venues just for asking about microg.) If you want to go this route, the easy way that doesn't require lots of hacking and breaking automatic system upgrades is to get the build of LineageOS from microg: https://lineage.microg.org/

GrapheneOS has a system whereby, rather than using microg, they sandbox the real Google Play Services to run as a highly restricted normal app rather than a system app. This gets you full functionality, including access to paid apps and in-app purchases, without Google having any control over your device.

Wow, you showed me something really important. I didn't know this aspect. just as I didn't know about microG. Now I will go into more detail about the issue (as far as I can). It would seem like a subtle difference between LineageOS and MicroG but it is so important. I ask a stupid question: these two OS are the best that the open source world can offer for an experience without monopolization by companies? Thanks anyway for your super useful contribution. I know grapheneOS, and for now it's the most valid solution I've found, but happy to be proven wrong

Note that some apps incl. banking or DRM secured content will not work with microG

@VahidAmiri: I haven't encountered that, but have heard it's a problem. I'm not sure what workarounds are available.

I know the project has always been open-source but recently purchased by Google.

You are mistaken on that point. The original Android, Inc. was founded in 2003 and acquired by Google in 2005. Google develops AOSP as open source, but you can't just install that and go. The reason for that is device drivers: those are almost all proprietary, written by SoC and/or device manufacturers, are not released as open-source, and aren't in AOSP.
If you want an Android-like smartphone OS without Google apps, the easiest way to get that is to pick a device that LineageOS supports, buy one, and put LineageOS on it. You'll find that most of the devices it supports are obsolete: this is because reverse-engineering hardware to write open-source drivers takes time, and nobody gets paid to do it.  There's a big archive of old LineageOS builds here.
There are other custom Android versions, but LineageOS is the most widely used.
Addendum: There are also a few manufacturers who provide their own Google-free alternative ROMs. SHIFT ships their phones with all the Google stuff (as any manufacturer must if their device is certified by Google), but you can download their Google-free ROM directly to the device and use its updater to switch.
The Fairphone 2 had the similar Fairphone Open. That doesn't seem to have been repeated for later models. You can download Fairphone's source and build yourself a new OS, but this is a big job and requires skill.
Further lists of alternative ROMs are here and here.

Hi John and thanks for your reply. I apologize for the mistake I made. I hadn't considered the drivers, this unsettles me a bit. In my ignorance I thought that the AOSP versions were ready to use, but this is not the case. This slows down my project, I know LineageOS but I don't love it much. But apparently it seems to be the only solution that is closest to what I thought. I admit my ignorance for having left out some details such as drivers. I thought it would be easier to give up these services.Paradoxically, this also applies to Pixel devices, right?.Thanks for your time and knowledge John

Almost none of the phones sold in China communicate with Google/Meta, but...

LineageOS without Google apps won't be able to run much of anything, because Play Services/Google Cloud Messaging will be missing, and most Android apps need those to run. When you complain they'll just tell you to install Google Apps, then you're back where you started. The solution is to get microg, but mentioning that in any LineageOS support venue will get you banned. The easy way to do this is getting the build from microg: https://lineage.microg.org/


text:
How to see the developer of an app?
I have a Galaxy S21+ running Android 14.  In the App Info, I don't see a way to tell which apps were made by which company. I'm especially interested in the pre-installed apps. Is there a way to do this?

Usually preinstalled apps are also available in Google Play or Samsung store. There you can find developer info. For play Store you only need the app packageName. Append it to the following URL: https://play.google.com/store/apps/details?id= and you get to the app web page (or to the page in Play Store app).

@Robert you will be surprised how many of the preinstalled apps cannot be found in any of the "markets" – usually more than half of them… // Eric:if you don't mind starting the apps, at least some of them might have an "about" menu you could look at. // In the past, I'd have said one could look up the package signatures. But with so many developers having handed over signing to Google, nowadays that only shows "Google" for far too many apps…

@Izzy But apps that are never updated (and thus are not available in any store) are pretty rare. The only parts that are usually not updated are the system apps, but even if some of them seem to be of little use I have never seen an app that was not from the device manufacturer (but my experience is mainly about devices from major brands like Lenovo and Samsung).

@Robert you can check some example device docs from my Adebar here, first look at the creation date of the report, then head to the "System Apps" secrion. Compare "first installed", "last updated", creation date.On some devices I had a hard time spotting an updated app. Follow the app links, you'll have a hard time finding one that's on Play. Most of the system apps I couldn't even find anywhere. And I remember a study that came to the exact same results: most system apps are in no store and never updated (except with ROM updates maybe).

"Developer info" is not something that is usually shown inside Android OS, but mostly only related to the app store.

On recent Android versions, in the App Info screen, there may be a menu to see the app entry in the app store:

Samsung: App details in store
Pixel: App details

Selecting it should open the app directly in the store. From there, the developer of the app can be found.

Otherwise, as stated in Izzy's comment, apps may provide in-app about page where the developer may also be mentioned.

Actually, key store may contain Organization, but I'm not sure how user-friendly it is to check it, or even if it's applicable for this question. Free free to expand it as a proper answer.


text:
Problems with music playback - Music File corrupt?
I have an HTC Inspire 4G (Desire HD, Ace), and whenever I have headphones plugged in and am listening to music, the music player will randomly start playing new songs, pausing and starting a new one every second or so, until I unplug my headset. I plug my headset back in, then at some point my phone will do this again, and I have to start this process all over again.
It started on the stock sense rom using the stock sense player when I first got the phone. I then tried using winamp, same problem. I rooted the phone, flashed CM7, and am now using Cloudskipper as my music player, still the problem persists. I even unchecked headset controls, still continued. I even tried another pair of headphones, however both were BEATS headphones. What is going on??

+1 for great question. Thanks for including your troubleshooting steps.

It was something wrong with the firmware in the phone. I installed a new kernel with the beats audio mod and everything worked correctly after that.

Sounds like the phone has a problem with that type of headphones. I'd try a different few different types of headphones.
It could also be a hardware problem with the headphone port.

I tried a different pair of headphones and still the same problem. If it's a hardware problem with the port is there any way I can fix it?

got insurance on it?

Check you audio socket for possible debris.


text:
Why do I keep texting myself voice mail transcripts?
I am having an issue trying to assess why I am texting transcripts to myself of the voice mails people leave me.
The Problem: I have an HTC EVO 3D on Sprint, and whenever someone leaves a message I get a notification in my gmail inbox of the transcript via Google Voice (ding #1). Shortly thereafter, I then get a notification (ding #2), and then 2-3 text messages (dings #4-5) on the HTC Sense texting app widget, from myself via my carrier's phone number (that is, the non-Google number). As you can imagine, it is incredibly irritating.
Background: Looking into the Voicemail settings on the phone, and the Visual Voicemail settings, I don't have anything enabled to cause this behavior (I am not signed up for the latter service, and the trial hasn't even been configured). Google Voice isn't to blame for these text messages; they are set up to only push to gmail. The texting app itself is of no use in terms of finding out where it is getting these notifications from; it says it's from my carrier's number, but nothing else.
Please let me know any suggestions you have to:
 - diagnose the source of the 2-3 text messages; they are the truly aggravating "feature" of this problem. I am not sure if this is caused at the carrier, hardware, or software level.
 - turn off the notification (sound) for the 2-3 text messages, or to disable the texts from myself entirely. As you might expect, I still want to receive notifications for other text messages, so muting the app wholesale is not an option. I am okay with ditching the HTC app, so if there is one (hopefully with a workspace display) that can selectively mute users (e.g. myself) that might be an option

Google Voice is responsible for these; they are sent by default. See in the settings:

You can uncheck this box and Google Voice will refrain from sending you SMS transcripts of your voicemails from then on.
Also note, unchecking the box above titled Email the message to: only prevents email transcripts, not SMS ones.


text:
How to extract calendar data from the stock calendar app of Android Gingerbread (2.3.6) without a Google account?
I am confronted with an old Android phone:

OS: Gingerbread (2.3.6)
Type: Motorola XT320

It holds quite a significant amount of data in its local calendar, operated by what appears to be the stock calendar app of Android of that era. The phone is not (and has never been) connected to a Google account.
How can I extract this data onto a computer (preferably without having to create a Google account etc. since this particular data actually is not Google's business)?

I have looked at the following questions, among others:

How can data on an unrooted phone be backed up?
How to backup the Android calendar file (is there such a file)?
Full Backup of non-rooted devices

I am aware of this iCal Import/Export CalDAV app which appears to be only available in Google's Playstore - as far as I can tell a no-go without a Google account.
I have experimented with the Calendar Import-Export app from F-Droid. The good news is that it is available (and still maintained) for Gingerbread. The bad news is that it does not see my calendar. This appears to be a dead-end so far. EDIT: I just filed a bug report against it.
I am no stranger to ADB - the phone has developer options enabled. From my research and test runs, I learned that adb backup only became available with Android 4, so this is no option for me. By gaining access to a shell on the phone (adb shell) I furthermore learned that the folder /data (where according to Android's documentation the calendar data should be located) can not be accessed by a regular user. My understanding is that /data is located on the phone's internal memory (not on its SD card) where it is protected by Android's security model.
In the context of ADB, I came across this project on Github. I am not entirely sure whether or not this will work with Gingerbread. The one thing I know is that I probably need to root my phone first before I can find out. Right now, targeting content://com.android.calendar/calendars, the script exits with Querying DB: Done and content: permission denied0%.
My four options left, as far as I can tell, are:

Going through the hassle of creating a Google account and extracting my data through Google cloud (and I really do not want to go down this path).
Rooting my phone so I can access whatever is stored in /data in the hopes that I can convert it to something readable (e.g. an ical file). If I understand the documentation correctly, the stock Android calendar app stores its data in a SQLite database file. I have yet not found a definition of how this data is stored in the database (which I could use to write some code to convert it). Funny side note: I have NOT yet found a "safe" way of rooting this particular type of phone. The general advise given: Backup all your data before trying ...
Android 2 allows to connect the phone to a Microsoft Exchange service (in addition to or even instead of a Google account). Theoretically, this should allow me to set up my own Exchange service in one way or the other and to get the data out this way ...
Going through the calendar by hand and writing every event into a computer manually as well. Given the amount of time I have spent researching this, it does not appear to be the worst option ...

I'd love to hear if there are any other options left that I might have overlooked or misinterpreted ... I am pretty damn frustrated at this point.

Is the device rooted? Then you could extract the corresponding database.

@Izzy It is not (yet). As stated above, I also have not found a "relatively safe" way to do it for this particular type of phone without risking to loose the relevant data.

@Izzy I just posted a related question about how to root this phone.

OK, when you achieved that, you can copy the database of the "calendar provider" (com.android.providers.calendar) to your SD card and pull it from there.

@Izzy Is not the "calendar provider" in this form an Android >= 4 thing?

My last pre-ICS experiences are some time ago – but AFAIR it was that way even back with Eclair (Android 2.1 – the first one I actually dug into), and definitely was there with Froyo (2.2, where I long time kept a copy of /data on my computer to investigate). Check below /data/data, and you most likely will find it.