text:
Replacing files with copies of themselves causing Android application to crash
I'm working with the Twitter Android application in an x86, Android 7.0, emulated environment, attempting to handle login sessions by cloning and restoring the application's data on disk.
For some reason, when tarring /data/data/com.twitter.android/databases, then immediately extracting that tarball back to the same place (so as to overwrite the files with copies of themselves), the application becomes bricked, crashing on startup until I do a full reinstall of the app. The same is true if I simply cp -rp the directory elsewhere, remove it, then restore it from the copy with cp -rp again.
This can be replicated by installing the Twitter application, logging in manually, then running the following from /data/data/com.twitter.android/ in an adb shell with escalated privileges (adb root):
generic_x86:/data/data/com.twitter.android # (ls -la databases; tar -cf /sdcard/db.tar databases; tar -xpf /sdcard/db.tar; ls -la databases)

ls -la before tar:
total 3200
drwxrwx--x 2 u0_a98 u0_a98   4096 2018-04-13 21:52 .
drwx------ 9 u0_a98 u0_a98   4096 2018-04-13 21:51 ..
-rw-rw---- 1 u0_a98 u0_a98 512000 2018-04-13 21:52 0-49.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 0-49.db-journal
-rw-rw---- 1 u0_a98 u0_a98  28672 2018-04-13 21:52 0-lru_key_value.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 0-lru_key_value.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 0-scribe.db
-rw------- 1 u0_a98 u0_a98  16928 2018-04-13 21:52 0-scribe.db-journal
-rw-rw---- 1 u0_a98 u0_a98 638976 2018-04-13 21:52 984053504628150273-49.db
-rw------- 1 u0_a98 u0_a98  74384 2018-04-13 21:52 984053504628150273-49.db-journal
-rw-rw---- 1 u0_a98 u0_a98  20480 2018-04-13 21:52 984053504628150273-dm.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-dm.db-journal
-rw-rw---- 1 u0_a98 u0_a98  20480 2018-04-13 21:52 984053504628150273-drafts.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-drafts.db-journal
-rw-rw---- 1 u0_a98 u0_a98  28672 2018-04-13 21:52 984053504628150273-lru_key_value.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-lru_key_value.db-journal
-rw-rw---- 1 u0_a98 u0_a98  40960 2018-04-13 21:52 984053504628150273-scribe.db
-rw------- 1 u0_a98 u0_a98  12824 2018-04-13 21:52 984053504628150273-scribe.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 evernote_jobs.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 evernote_jobs.db-journal
-rw-rw---- 1 u0_a98 u0_a98  36864 2018-04-13 21:52 global.db
-rw------- 1 u0_a98 u0_a98  12824 2018-04-13 21:52 global.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 google_app_measurement_local.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 google_app_measurement_local.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:51 persistent_jobs.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:51 persistent_jobs.db-journal

ls -la after tar extraction:

total 3184
drwxrwx--x 2 u0_a98 u0_a98   4096 2018-04-13 21:52 .
drwx------ 9 u0_a98 u0_a98   4096 2018-04-13 21:51 ..
-rw-rw---- 1 u0_a98 u0_a98 512000 2018-04-13 21:52 0-49.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 0-49.db-journal
-rw-rw---- 1 u0_a98 u0_a98  28672 2018-04-13 21:52 0-lru_key_value.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 0-lru_key_value.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 0-scribe.db
-rw------- 1 u0_a98 u0_a98  16928 2018-04-13 21:52 0-scribe.db-journal
-rw-rw---- 1 u0_a98 u0_a98 638976 2018-04-13 21:52 984053504628150273-49.db
-rw------- 1 u0_a98 u0_a98  74384 2018-04-13 21:52 984053504628150273-49.db-journal
-rw-rw---- 1 u0_a98 u0_a98  20480 2018-04-13 21:52 984053504628150273-dm.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-dm.db-journal
-rw-rw---- 1 u0_a98 u0_a98  20480 2018-04-13 21:52 984053504628150273-drafts.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-drafts.db-journal
-rw-rw---- 1 u0_a98 u0_a98  28672 2018-04-13 21:52 984053504628150273-lru_key_value.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 984053504628150273-lru_key_value.db-journal
-rw-rw---- 1 u0_a98 u0_a98  40960 2018-04-13 21:52 984053504628150273-scribe.db
-rw------- 1 u0_a98 u0_a98  12824 2018-04-13 21:52 984053504628150273-scribe.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 evernote_jobs.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 evernote_jobs.db-journal
-rw-rw---- 1 u0_a98 u0_a98  36864 2018-04-13 21:52 global.db
-rw------- 1 u0_a98 u0_a98  12824 2018-04-13 21:52 global.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:52 google_app_measurement_local.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:52 google_app_measurement_local.db-journal
-rw-rw---- 1 u0_a98 u0_a98  16384 2018-04-13 21:51 persistent_jobs.db
-rw------- 1 u0_a98 u0_a98   8720 2018-04-13 21:51 persistent_jobs.db-journal

As you can see, the output of the two ls executions are nearly identical, all permissions are preserved, however the size of the directory after tar creation and subsequent extraction is smaller than before, I figure this is just the OS optimising the number of disk blocks used though?
I have searched the whole filesystem for soft links to the directory in question and have come up with nothing. You can also see from the output of ls -la that the directory only has 2 hard links (one from .../databases/ and one from it's own '.' entry), so I'm pretty sure no links are being destroyed.
I'm doing all of this when the application is not running, and I've tried restarting the system inbetween replacing the files with copies of themselves and starting the application. I've also tried on Android 8.0, and 7.1.1 with the results.
I'm very confused as to what's causing this haha, any help/ideas are greatly appreciated.
-----------------------------------------------UPDATE--------------------------------------------------------
Don't know why it took me so long to think to check logcat (duhhhh):
04-14 16:50:12.417: E/SQLiteLog(8473): (14) cannot open file at line 35652 of [8201f4e1c5]
04-14 16:50:12.417: E/SQLiteLog(8473): (14) os_unix.c:35652: (13) open(/data/user/0/com.twitter.android/databases/persistent_jobs.db) -
04-14 16:50:12.420: E/SQLiteDatabase(8473): Failed to open database '/data/user/0/com.twitter.android/databases/persistent_jobs.db'.
04-14 16:50:12.420: E/SQLiteDatabase(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:723)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:218)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.database.BaseDatabaseHelper.a(Twttr:280)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.database.BaseDatabaseHelper.getReadableDatabase(Twttr:262)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at ewg.b(Twttr:274)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at ewg.f(Twttr:246)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at ewj$a.b(Twttr:217)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at ewj$a.c(Twttr:199)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.async.operation.AsyncOperation.a(Twttr:319)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.async.operation.b.call(Unknown Source:4)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.util.errorreporter.a.a(Twttr:93)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at com.twitter.async.operation.AsyncOperation.ag(Twttr:317)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at dsq$a.run(Twttr:257)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
04-14 16:50:12.420: E/SQLiteDatabase(8473):     at java.lang.Thread.run(Thread.java:764)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473): Couldn't open persistent_jobs.db for writing (will try read-only):
04-14 16:50:12.421: E/SQLiteOpenHelper(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:723)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:218)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.database.BaseDatabaseHelper.a(Twttr:280)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.database.BaseDatabaseHelper.getReadableDatabase(Twttr:262)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at ewg.b(Twttr:274)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at ewg.f(Twttr:246)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at ewj$a.b(Twttr:217)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at ewj$a.c(Twttr:199)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.async.operation.AsyncOperation.a(Twttr:319)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.async.operation.b.call(Unknown Source:4)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.util.errorreporter.a.a(Twttr:93)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at com.twitter.async.operation.AsyncOperation.ag(Twttr:317)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at dsq$a.run(Twttr:257)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
04-14 16:50:12.421: E/SQLiteOpenHelper(8473):   at java.lang.Thread.run(Thread.java:764)
04-14 16:50:12.422: E/SQLiteLog(8473): (14) cannot open file at line 35652 of [8201f4e1c5]
04-14 16:50:12.422: E/SQLiteLog(8473): (14) os_unix.c:35652: (13) open(/data/user/0/com.twitter.android/databases/persistent_jobs.db) -
04-14 16:50:12.422: E/SQLiteLog(8473): (14) cannot open file at line 35652 of [8201f4e1c5]
04-14 16:50:12.423: E/SQLiteLog(8473): (14) os_unix.c:35652: (13) open(/data/user/0/com.twitter.android/databases/evernote_jobs.db) -
04-14 16:50:12.423: E/SQLiteDatabase(8473): Failed to open database '/data/user/0/com.twitter.android/databases/evernote_jobs.db'.
04-14 16:50:12.423: E/SQLiteDatabase(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:723)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:194)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at com.evernote.android.job.f.a(Twttr:130)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at com.evernote.android.job.d.a(Twttr:242)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at ewa.l(Twttr:87)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at com.twitter.android.initialization.JobScheduleInitializer.a(Twttr:28)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at com.twitter.android.initialization.JobScheduleInitializer.a(Twttr:17)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at dez.a(Twttr:72)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at dfa.run(Unknown Source:6)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.internal.operators.completable.c.b(Twttr:34)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.a.a(Twttr:1686)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Twttr:64)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.u$a.run(Twttr:452)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.internal.schedulers.ScheduledRunnable.run(Twttr:66)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at io.reactivex.internal.schedulers.ScheduledRunnable.call(Twttr:57)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
04-14 16:50:12.423: E/SQLiteDatabase(8473):     at java.lang.Thread.run(Thread.java:764)
04-14 16:50:12.423: E/JobStorage(8473): could not load all jobs
04-14 16:50:12.423: E/JobStorage(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.423: E/JobStorage(8473):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:723)
04-14 16:50:12.423: E/JobStorage(8473):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
04-14 16:50:12.423: E/JobStorage(8473):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:194)
04-14 16:50:12.423: E/JobStorage(8473):     at com.evernote.android.job.f.a(Twttr:130)
04-14 16:50:12.423: E/JobStorage(8473):     at com.evernote.android.job.d.a(Twttr:242)
04-14 16:50:12.423: E/JobStorage(8473):     at ewa.l(Twttr:87)
04-14 16:50:12.423: E/JobStorage(8473):     at com.twitter.android.initialization.JobScheduleInitializer.a(Twttr:28)
04-14 16:50:12.423: E/JobStorage(8473):     at com.twitter.android.initialization.JobScheduleInitializer.a(Twttr:17)
04-14 16:50:12.423: E/JobStorage(8473):     at dez.a(Twttr:72)
04-14 16:50:12.423: E/JobStorage(8473):     at dfa.run(Unknown Source:6)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.internal.operators.completable.c.b(Twttr:34)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.a.a(Twttr:1686)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(Twttr:64)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.u$a.run(Twttr:452)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.internal.schedulers.ScheduledRunnable.run(Twttr:66)
04-14 16:50:12.423: E/JobStorage(8473):     at io.reactivex.internal.schedulers.ScheduledRunnable.call(Twttr:57)
04-14 16:50:12.423: E/JobStorage(8473):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
04-14 16:50:12.423: E/JobStorage(8473):     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
04-14 16:50:12.423: E/JobStorage(8473):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
04-14 16:50:12.423: E/JobStorage(8473):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
04-14 16:50:12.423: E/JobStorage(8473):     at java.lang.Thread.run(Thread.java:764)
04-14 16:50:12.430: E/SQLiteLog(8473): (14) cannot open file at line 35652 of [8201f4e1c5]
04-14 16:50:12.430: E/SQLiteLog(8473): (14) os_unix.c:35652: (13) open(/data/user/0/com.twitter.android/databases/evernote_jobs.db) -
04-14 16:50:12.432: E/SQLiteDatabase(8473): Failed to open database '/data/user/0/com.twitter.android/databases/persistent_jobs.db'.
04-14 16:50:12.432: E/SQLiteDatabase(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:265)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:218)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.database.BaseDatabaseHelper.a(Twttr:280)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.database.BaseDatabaseHelper.getReadableDatabase(Twttr:262)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at ewg.b(Twttr:274)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at ewg.f(Twttr:246)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at ewj$a.b(Twttr:217)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at ewj$a.c(Twttr:199)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.async.operation.AsyncOperation.a(Twttr:319)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.async.operation.b.call(Unknown Source:4)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.util.errorreporter.a.a(Twttr:93)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at com.twitter.async.operation.AsyncOperation.ag(Twttr:317)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at dsq$a.run(Twttr:257)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
04-14 16:50:12.432: E/SQLiteDatabase(8473):     at java.lang.Thread.run(Thread.java:764)
04-14 16:50:12.438: E/SQLiteDatabase(8473): Failed to open database '/data/user/0/com.twitter.android/databases/evernote_jobs.db'.
04-14 16:50:12.438: E/SQLiteDatabase(8473): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:723)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
04-14 16:50:12.438: E/SQLiteDatabase(8473):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
....

So somehow replacing the SQLite databases in /data/data/com.twitter.android/databases affects the databases in /data/user/0/com.twitter.android/databases/.
Deleting the files in either directory has the effect of deleting them in the other directory, suggesting they're hard linked - but I can't see that they are.
Also deleting all the files inside either databases directory has no effect - the app starts normally and the db files are restored from somewhere.

Instead of using tar (it's never a good idea to fiddle with the files of an application still running), why not using adb backup and adb restore? You can restrict that to a single app's data. Of course, the app must allow for backups (and not have opted out).

@Izzy Thanks for the suggestion. Unfortunately the app doesn't allow backups. I've tried with a rooted device & Titanium backup, but I get a similar problem in that the restored application crashes at startup every time.

Already feared that being the case. On a rooted device with Xposed installed, you could try it with the BackupAllApps module (which should make adb backup ignore the AllowBackup flag).

Just tried that now. The Xposed module definitely bypassed the AllowBackup flag as the backup is ~25mb. However on uninstalling the Twitter app, then reinstalling, then restoring the backup data, the same thing happens - the application crashes on startup. Confusing huh!

Indeed confusing. And that's the end of my "wisdom" on this … so someone else has to pick up. Good luck!

Thanks anyway :) I've narrowed it down to something to do with SQLite databases in /data/user/XX/com.twitter.android/databases and /data/data/com.twitter.android/databases becoming unlinked I think.

Before creating the backup I would make 100% sure that nothing is running anymore by uninstalling the app but keeping the data (adb uninstall -k com.twitter.android). Otherwise databases may get corrupted as you have observed.

@Robert Nice idea. Unfortunately still have the same problem when I do that.
It's so odd, anything I remove in either /data/user/XX/com.twitter.android/databases or /data/data/com.twitter.android/databases is reflected in other, suggesting they're hard linked, but I can't find any hard links.
Also found out that simply removing all the files in either directory has no effect - the app starts up normally.


text:
Wallpaper on Android: Automatically update to latest Instagram post
I'd like to automatically update my Android wallpaper when a new image appears on a target Instagram account (not my own). Running once a day is fine.
What I've tried: IFTTT recipe tied to custom FetchRSS feed...but it seems the recipe fails to extract the image URL from the markup.

Navigate to URL:
https://web.stagram.com/rss/n/{INSTAGRAM_USERNAME}
For example, https://web.stagram.com/rss/n/puuung1
Verify a RSS feed appears.
Create the IFTTT recipe:
This: "RSS Feed" > New feed item, then enter the RSS feed URL from above
That: Android Device > Update device wallpaper > EntryImageUrl
NOTES

It seems this may not update your wallpaper until a new feed item appears
It seems any RSS feed errors may cause the update to fail...you can run through a validator to confirm (e.g., the FetchRSS feed had an error)
The wallpaper may not be resized properly if a video or other non-image media

source: Stack Exchange

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

sort: votes


text:
Does Android come with a built-in plain text editor?
I need to edit a simple plain text file. Is there a built-in text editor that comes with Android? I have Android 7, LG Stylo 3.
I just need to open a text file, and enter some words:
cat
dog
etc
I need to edit text, then share it via email or have it saved in Android file system so I can share it later.
Second question: if there is no such a thing, what is the simplest plain text editor app available for such task?

No Stock Android does not to my knowledge.  This should really be on http://softwarerecs.stackexchange.com

We don't do software recommendations here. But be welcome to check my corresponding app listings: Office Suites and Text Editors and, maybe, Notes.

No AFAICT, unless it it is preinstalled by the device manufacturer, for example some devices like Xiaomi, Huawei come with a preinstalled document editor (WPS), which not allows you to view but to edit text files as well.
As suggested above, stock android only comes with with text viewer , not editor, in any case if you need to install it, please see Izzy's list of suggested text editors

Yes. I'm on Lenovo k8 note right now which is running stock Android 8.0. I was looking if it has some built-in text editor like vi in unix based systems.  I installed terminal emulator and looked for vi, vim and nano but got no luck. Then I tried sed(Stream EDitor) which also comes preinstalled with most unix based systems, and it worked well. So, yeah you can use sed to do some command line text manipulation.

This does not answer the question. On Android you have no command line. You should delete this wrong answer.

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

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


text:
How to insert "blank character" in WhatsApp?
There is a blank character (kind of box) that can be used in WhatsApp to set blank status or send blank messages.
How to create/type or find that character?

The methods shared here unfortunately do not work; the Arabic Character used to work but it stopped working since long.
The only character which seemed to work was the Reverse Character Unicode [which I discovered in 2005]  Pasting or Opening it on a PC messes it up.
Afterwards I stumbled on another unicode character which would work (on most devices) even when shared through PC etc.
Copy the Space visible between the bold brackets [  ] .
If for some reason you fail to copy it from above you may copy it from my blog > here.
The box type thing you mentioned appears on Apple devices and the proper technique wouldn't result in a box type thing even on Apple devices.
Fun Fact : I was the one who worked out the "blank character" thing on the internet more thn 2 yrs back and finding others using(stealing) even "my images" spoils the mood, thus I came here to post the same.

Just copy the character between the quotes: " ", and paste it wherever you want.

Just go to your computer, go to character map (or a word document) and hit ALT + 255 or ALT + 0160 and copy that file into your phone. Then open that document on your phone, copy the text and paste it wherever you want.
However, if you don't want to waste time doing all this; just go to your WhatsApp settings and hide your status.

Method 1 – Using Arabic Words

Copy this content >> ” ﱞ  “
Make sure you have copied the message with (double quotes).
Paste this content on WhatsApp.
First, try to remove or delete the left quote.
Later try to remove or delete the right quote.
When you will try to remove the right quote, everything will be gone.
Done… Tap on send button to send a blank message.

Method 2 – Using Alt + Key Combinations

Open Notepad on PC or Laptop
Press ALT + 255 (Hold Alt Button and Type 255).
The above key combinations will generate a blank space.
Now save this file on the smartphone (PC > PHONE).
Before sending the message, open the file on the phone.
Copy the content.
Open the WhatsApp and paste the content to send.
Done… You have successfully sent a blank message to your friend on WhatsApp.

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

authors: วัชระ อุตธะคํา


text:
Google location history wildly inaccurate
I may have set a new world record in travel according to Google location history. I've noted that on Wed, 18th March 2014 I was in Sydney at 5:28pm, then in Sale Morocco at 6:06pm, then back in Sydney at 6:08pm. At this rate, I have travelled (according to google) 11,169 miles each way in about half an hour.
Also, I note on the 20th March 2014 that I did it again, this time:

5:25pm Sydney
5:27pm Jakarta
5:29pm Sydney
5:31pm Jakarta
5:44pm Sydney

Now I know that Google uses GPS satellites, Wi-Fi networks and the Cell networks to locate my location, but can it get the language, country and continent wrong all at once?


text:
Retrieving phone conversations
I know this is a shot in the dark, but I had a phone call yesterday that I really want to retrieve it.
Can I phone up my provider (Vodafone) and ask for the recording? How do I go about doing this? Or is the conversation stored locally on my Galaxy S3?

No, your provider can't give you a recording of your phone call, and it's not saved on the phone by default.
There are a zillion apps on Google Play for recording phone calls, but there are two things to be aware of:-

Some phones simply can't record calls. This is because the "cellphone chip" in your phone has direct access to the microphone and speaker, so the phone call sounds don't ever pass through Android's phone system. If your phone was designed this way, probably you can record your side of the call (because Android still has access to the microphone), but not the other side. It doesn't matter which call recording app you use, because it's a limitation of the hardware.
In some countries, it's illegal to record a phone call without the consent of the other participant(s). Before doing anything, you should check, especially if you intend to use the recording as evidence to confront the other participant later or in a legal dispute.

Although the Android phone call recorders I have tried only record the audio from the other end via my mobile phone's microphone I have taken the audio files into Audacity on the PC and amplified and flattened the volumes so that both ends are clearly audible.  A bit laborious but if it's a small number of calls it's quite do-able.


text:
Cannot charge due to low battery temperature on Lenovo P780
My Lenovo P780 won't charge because the battery warning always pop up & says that charging is paused due battery's temperature is too low. I have checked the battery's temperature & it is around -20°C. I am just living in the Philippines and only got this when I went back to work in Vietnam.
Tried to warm up the phone, but the temperature is still -20°C. I can only charge the phone when it is "OFF" & it takes very long time to charge; 5 hours charging & the battery is charged up to 60% only. Why this happens and how to fix it?

Sounds like a temperature sensor may have gone awry, just to be clear: the temperature of the battery isn't actually -20 right?

yup, tried to warm up the phone & played more games just to keep battery warm, and can actually feel it is warm, but still indication is stucked @ -20 degC

So what you have sounds like one of two things.
One, there is a software issue giving false readings off the temperature sensor. In order to diagnose this I would recommend installing a third party battery monitor which can monitor temperature. If this gives you a normal temperature you know its software and a factory reset should fix your problems. If it still is -20 than it could be hardware or just firmware level software.
Two, the temperature sensor could be broken or malfunctioning giving a false or default reading.
Either way if doesn't cause any problems a factory reset would either fix it or tell you what is wrong.
Let me know how it goes, I may have some other options for you if need be.

Tried to download 3 battery temp monitor apps but all of them gave the same -20°C. Have not trief the factory reset yet...

Yeah, your temperature sensor's busted. You will probably need to replace the battery.

I faced similar issue, I did factory reset and then it started charging just fine.

Put Tape into the center battry switch, 2 should be ok but in centre put tape

authors: Александр Иванов


text:
Installation of Jellybean or Kitkat on Micromax A89?
I have Micromax A89 mobile with ICS 4.0.4 OS AND MTK 6577 processor. I would like to install Jellybean 4.2.2 OS on my MMX A89 device. Is it possible? Even I would like to install Kitkat 4.4 too if possible?

What are the steps to install Jellybean 4.2.2 (or 4.3) on my MMX A89 device (safer way to install)?
If I could able to install Jellybean 4.2.2 on MMX A89 then further it is possible to install Kitkat 4.4 in future?

Can anybody help me for this?

After searching in XDA, I found a few ROMs which are ICS-based but Jellybean or KitKat themed, I think there are not enough devs to port Jellybean or KitKat ROM for A89. You can try various ROMs to taste the look-and-feel of Jellybean or KitKat.
Here is the link of various ROM available in XDA.

So you mean to say that only Jellybean theme will be changes in MMX A89 and not actual OS?

Yes the roms are based on ICS

Then what about Quantum Radicle V0.9 for Micromax A89 Ninja and Xolo A700 ?

Quantum Radicle V0.9 is based on Android Icecream Sandwich 4.0.4 and not on Android Jellybean. its there in the link you just gave

Yes. You're right. So that means we never ever get the feature of actual Jellybean or not Jellybean OS at all in MMX A89 but only theme?

Yes i think so, because need jellybean kernel and there is no popular devs for a89, as the phone is popular in India only

MediaTek, unlike other brands, does not release Android updates in sync with (or soon after) an official Android release.
Moreover, they do not release the full source code for their chipsets, preventing Android developers from properly compiling ROMs.
They (MediaTek) have, however, announced that a 4.4.2 update will be rolling out 'soon', so you have no other options but to wait or flash an ICS-based, JB/KK-themed ROM.


text:
ART makes Facebook app non installable (Error: -24)
I have an Android 4.4.2 phone and I enabled ART instead of Dalvik.
When I go to the Google Play Store and try to install Facebook, it can't install the app.
I get two errors, sometimes I get

Invalid installation package

and sometimes

Error -24

Is there a way to know what's going on?

Have you considered the possibility that the facebook app is not compatible with the ART runtime? Some apps may work straight out of Playstore with ART, others don't. ART is not yet ready for prime-time!

@t0mm13b Hi! Yes, I considered it. But if you take a look at the ART compatibility list it seems that facebook is fully compatible. Also, every friend of mine that switched to ART can use facebook without issues, even with custom roms. Is there something I can do to try to find what's the problem on my phone? P.s. I also tried installing facebook on dalvik and switching to ART after installation. If I do such thing, the phone goes to reboot loop

To add on, facebook works fine for me and im running ART

It's an experimental feature in 4.4.  Please direct bug reports to Google.

Try switching back to Dalvik --> Install Facebook --> switch back to ART. It's working fine for me, i just happened to have installed it before switching to ART

I've had this same problem. To fix it I did the following:
Uninstall Facebook,
Wipe dalvik cache via recovery,
Reinstall Facebook,
Reboot device,
Sign in to Facebook.

Read the question: I'm not even able to install facebook. And if I install it on dalvik, then clear cache and switch to ART, i get a boot loop

I'm not saying switch to dalvik, I'm saying clear the cache via the clear dalvik cache command in recovery.

Tried, it's the same, I can't install facebook


text:
Cannot reinstall WhatsApp on Samsung Galaxy Note Pro
I have installed WhatsApp on my Samsung Galaxy Note Pro previously but uninstalled it a few days later. Now that I want to install it back again, it says the device does not support WhatsApp.
Please advise why am I able to install at 1st and not now?

WhatsApp provides the APK file to install without the Play Store.
The APK can be found here: http://www.whatsapp.com/android/

Please provide more specific detail. Is the error warning appears on the Play Store or when you try to open WhatsApp? What Galaxy Note Pro do you use?
If you are using Galaxy Note Pro 12.2 WiFi only, based on this WhatsApp FAQ, your device is unfortunately not supported.

The errors appear on playstore stating 'your device isn't compatible with this version.' The Note Pro I'm using is Galaxy Note Pro Model SM-P905. In fact I have downloaded whatsapp in this device when I bought it few days back.


text:
Downloading a .ics file from a url without opening the browser?
Ok, this is a little complicated.
My uni allows my academic calendar to be downloaded as an ics file from a particular url that is specific to my calendar.
I have downloaded ICS Bot which transfers ics files into google calendar so I can view it on my HTC Sensation in a calendar.
If I download the .ics file and then the calendar's events change I will not have the up to date events. Therefore I need to regularly update the calendar myself by downloading the updated .ics file from the url.
I want an app/a single button that can download my .ics file without me having to open my browser, go to the page displaying my link and then clicking save as to get the new calendar.
Is there a way to do this???
Many many thanks.
EDIT I found some interesting discussions but I have no clue how to get a app from code:
http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device
http://androidforums.com/developer-101/166103-downloading-file-url-caching-android.html

I'm guessing that this other question is a generic version of this one. True? If so, I'd suggest deleting the other question. There's probably not enough information there to get good answers.

Could you not go to https://www.google.com/calendar/ and add the .ics as a calendar there?  Any calendar on the web app can be synced to your phone's Google Calendar

Go to http://www.google.com/calendar (on a desktop computer) and login with the same gmail as your phone.
On the left hand side bar there is "Other Calendars".  Click the drop down to the right of that, then choose "Add by URL".
In the modal dialog, enter the URL of the .ics calendar file.  Then click Add Calendar.
Now open Google Calendar app on your phone. Hit the menu button --> More --> Calendars.  You should see the email you just added under your gmail account.  Enable syncing for it and then hit OK.  You should now have the most up to date copy of that calendar on your phone.

@helpplease I'm not sure, I haven't had syncing problems with the other calendars I have on my phone. From your launcher screen, hit  menu, go to settings, go to accounts & sync, and make sure background data and auto-sync are enable.  Then click on your gmail account and make sure "Sync Calendar" is enabled. That should be all that is required to auto-sync a calendar

@helpplease You can always force a sync by going to Settings -> Accounts and sync -> Google account -> Sync now

Maybe ICSSync would be a better option for you:

ICSSync is an Android app for syncing calendars between an Android device and an ICS file (iCalendar) on a FTP/WebDAV server (plain WebDAV or SVN) or stored in a file (e.g. your Dropbox-folder).

So you can keep your calendar entries up-to-date automatically. Alternative candidates exist as well in the Playstore, e.g. CalendarSync (a bit expensive with ~ USD 10), or CalDAV Sync (~ USD 3).


text:
Samsung Galaxy S2 hangs/freezes sometime
I am using Samsung Galaxy S2 for last 4 days. After two days of usage, I am experiencing phone hanging frequently. It just freezes while operating. The screen light won't go off and screen stays freezed. Only way out is press & hold power off button and restart S2.
I was using a launcher called, Go Launcher EX. Thinking this launcher is making the problem, I uninstalled everything related to this. But it didn't fix the problem.
I am running the following applications other than the defaul samsung installed ones.

Advanced task killer
Amazon Kindle
Angry birds
Dropbox
Facebook
Firefox
Gmail
Picture Dial
Springpad

I am not sure which application causes the problem. I am thinking of doing a factory reset. Before I do that, just wanted to see if someone else faced the problem.
If the crash/freeze happens next time, is there a place that I can look for diagnostic information? Like logs, dumps etc.
Edit
I got it freezing again. I was charging the phone and got a call. That froze the phone.
Any help would be appreciated

How often do you use the task killer? Because you really shouldn't.

I use it whenever I see lot of applications are running. I heard, it is good to use that. Why do you think it should be run often?

No, you shouldn't use the task killer at all. See http://android.stackexchange.com/questions/9/do-i-really-need-to-install-a-task-manager

If you suspect an app or service is causing the freeze, and if your phone is rooted, install Bloat Freezer and then freeze  background apps and services in groups to try and isolate the problem.
A good list of apps that can be safely frozen can be found here. Some of them are:

All share
Analog clock
Android live wallpapers
Ap Mobile
Bookstore

There are over a hundred listed in the post I've referenced.


text:
CM7 Dialer Problems
I am currently running CM7 on an HTC Desire HD. When I make a call, CM7's dialer for some reason has the hold button right where the side of my face touches the phone. I have tried to use tasker to make the screen lock and have a timeout of one second when I answer the phone or call someone, but this didn't work.
Is there a way to fix this or are there custom dialers out there that changes the look of this screen??

The problem is not really CM7's fault. It sounds like you have an issue with the proximity sensor on the device. The screen should go black when you put the phone up to your ear. Searching, I have found that this seems to be a common problem with the Desire HD. You could try some things like recalibrating the sensor.


text:
Rooting Stock Wileyfox Spark CM13 OS
Has anybody in this world ever succeeded rooting this device? Tried, all One Click apps, Desktop Tools, Recovery Flash:

Kingroot says Not Adaptable
Kingoroot says Error code 0x00...
Others say try Desktop version after fail
TWRP SuperSU.zip package says exiting process after judging a lot of options
All desktop apps fail same way or the other

What do a person do after all these attempts?
While closely inspecting the file system in /data I found out three files: a .gz archive of stock boot.img named by the md5sum of its content .img 16MB, SuperSU.img 99MB, and SuperSU.apk 6MB. Why the hell could the developer put the files here and device never seems to use any of these files at all?
@Izzy, your suggestion about trying was a good one but i have tried all the SuperSU zips by Chainfire and all the phone ends up in this state: In fact, the phone is unlocked, TWRP says this no matter which file I use trying to root (first screenshot); additional suggestions about a special CMSuperSU also ends up with this (second screenshot; click images for larger variants):

And Magisk install completes well from recovery. On boot up Magisk app shows but as a user installed app. And prompts this which becomes unsuccessful too:

@Izzy what I have done so far is. Letting Magiskv14 do it's work, flashed it and rooted the phone instantly. What I have discovered is that Magisk is not about copying files from the zip to the system, it's based on having a persistent ever-root on the phone's boot.img. This is attained by modifying the boot.img so that on every bootup of the phone, preparation of the for the file system comes with copying magisksu to /sbin alongside other files. and then initiates startup of magisk service with init.magisk.rc on the root folder, even if you delete the files, on the next boot

the system is rooted again. The stock boot img I discovered is set to unroot and de-copy all superuser oriented files from the system. That's the only way to unroot it. Magisk apk also can delete itself from /data as a user app but can't when manually installed to /system. What I did. I flashed the magisk-patched boot.img to recovery partition and stock boot.imh to boot partition. So since magisk app is in system I'm not gonna lose it booting the stock boot. On normal boot no root. On recovery-initiated boot, system is rooted. Thanks a lot. You can post an answer to this thread finally.

Hm, that way you've no recovery mode anymore. And just for clarification: Magisk doesn't touch the /system partition at all. What looks to you like it copying stuff there is accomplished by a transparent Overlay File System. So installing it as a system app somehow contradicts the purpose. Well, you don't expect any OTAs for the Spark maybe – but by modifying /system you've lost the chance to pass SafetyNet.

@Izzy yeah but I have all the images backed up: boot, secro, secfg, recovery, nvram, nvdata I have also unlocked bootloader. I usually boot the stock and twrp images while I need them. I'm completely aware of the danger of that...

OK then – just wanted to make sure other readers are aware of that, too :) Of course you can always fastboot boot twrp.img from your PC – as long as you have one, didn't re-lock the bootloader, and the USB port isn't damaged ;)

Got you. Yeah as a point to note for those who wanna jump into something like that without taking care of stock imgs dump :)

Rooting can be accomplished using Magisk (make sure not to use an old version, but that from the linked XDA thread: v14 at the time of this writing). Flashing Magisk will not modify the /system partition but rather create a modified boot image. So at boot time, Magisk gets initialized, creating an Overlay File System on top of the system structures. That way the relevant files get (re)placed transparently, the checksum of the partitions are kept (thus OTAs will not complain), while still applying the needed modifications (including MagiskSU). Another added plus is the capability of Magisk to hide root from apps which otherwise would refuse their work.
As you've learned: Do not flash another superuser package on top of that. Magisk already includes root, called MagiskSu.
I'm using Magisk on my Wilefox Swift with CyanogenOS 13 without issues – same manufacturer and OS as your Spark. As we figured, it works on both.
Magisk comes with an app called MagiskManager (which is also available separately e.g. via my F-Droid repo. This is the frontend to work with the framework, including settings for MagiskSU (i.e. where you maintain which app may use root powers) and more. So there are several Magisk modules available, similar to what you might know from Xposed – even a "systemless Xposed" can be used that way (again, I'm using this and it works fine).
For instructions, please see the linked Magisk thread at XDA. It's quite simple. To include the basics: You need a custom recovery (TWRP is recommended, and available for our Wileyfox devices). With that, and an unrooted ROM, simply flash Magisk, reboot, and you're done. You probably need to repeat this after applying OTAs. As the MagiskManager is installed as an user app, its data are kept unless you perform a factory reset.


text:
Configure custom AdBlock Plus filter lists subscriptions
Using a desktop PC version of AdBlock, I can subscribe to any combination of filter lists, and so I do subscribing to EasyList + Czech, Russian and German lists (I am a polyglot user using many languages actively) as well as EasyPrivacy, Fanboy's Annoyances lists, etc.
But in the mobile AdBlock Plus, I could only find a set of exclusive (choose-one) EasyList + a national list couples, not even featuring a Czech list at all.
Needless to say, I could neither find a way to set up custom filters of my own.
Any ideas?

There's a feature request to Add custom filter (subscription) support (ticket #257), but it's not yet implemented at the moment.

That said, if your device is rooted, you can manually customize the filter (not the subscription list, but the filter itself). However, by doing this, you'll lose the automatic filter update.
The interesting file is located on /data/data/org.adblockplus.android/files/patterns.ini. Take note that it's quite a big text file, and I personally recommend to edit it on a computer. The file has some sections defined by square brackets ([...]), and the filter starts after [Subscription filters].
For the starter, you can mix'n'match the filters from main subscription list (look for url inside <subscription> for the filters). If you're an advanced user, or feeling experimental enough, take a look at Writing Adblock Plus filters.
After you're done with the customized filters file, I recommend to backup it somewhere safe (you certainly don't want to lose your hard work). Before overwriting patterns.ini, open Adblock Plus app and go to Advanced Settings, then set the Subscription refresh to Manually. Otherwise, the app will overwrite your filters.
Now, the AdBlock Plus should be using your customized filter!

With the Android version you can't have custom filters or subscriptions, you can only use what comes with the app.

Also, having a special filter set just for facebook would be awesome, where we can block out certain columns as well as have the ability to pick and choose what "we thought you might like this" areas of the page.

You might want to read about the site a little -- see here.  We're different from a forum in that we don't want people to chime in if they agree or disagree, that's what voting is for.  Q&A, not discussion or polls.


text:
Migrate WhatsApp from phone (old expired number) to another one?
I have a phone that has had WhatsApp installed on for over 2 years now, and the phone number registered for the account is now history (it's been long gone and there is no chance I will get that SIM back because it is from another country).
I got a new phone today with a new SIM, when I start WhatsApp, I put in my old number but it needs to send a message to the number and that is not possible.
Is there any workaround for this, I don't want to lose all my WhatsApp contact.

There is a chance if you have friend or family who could reach to your old phone. Migrating whole app could be hard as it needs root on both phone and you would need TitaniumBackup to backup and restore. That would be more easy to backup contacts only and restore it on your new phone. There is app(s) on Google Play which can backup your whatsapp contacts like https://play.google.com/store/apps/details?id=com.sacconsultancy.waex

I don't care much about the contacts really as much as i care not to change my number, i have the sim card but it's not working because it's been over a year and i haven't used it or charged it at all and even when i tried it, it seems that it have been cancelled completely and since it's from another country now, it useless. No solution other than rooting.

If you are concerned about the contacts and not the chat history, then back up the contacts in your old phone and import them into your new phone. Sign in to WhatsApp with your new number and it will read all the contacts in your new phone and your contact will be updated.
The only downside is you need to send a WhatsApp message to all the contacts saying that you changed your number.

Exactly that is the problem that i want to avoid, so is there no solution to this problem at all ?

Anyway you need to tell the people that you changed your number rite??. I dont understand.

There is a provision in Whatsapp to change numbers. In the app goto Settings > Account > Change number and enter both the numbers (old and new). It should be able to migrate the numbers. Disclaimer: I have not tried it, only from one of my friend's experience. This method might require you to be register the first number so you might be out of luck.

@k1chy even that step need the user to tell his contact that he changed his number

The point is to not change the number. You can keep using an old number for as long as you like, even after you no longer have the SIM, as long as you don't switch phones. But the moment you load the app on a new phone, you have to verify again, which seems to be impossible if you don't have current access to the SIM or service. For instance, I just bought a new phone in a different country than the one where I normally use cell service, and I can't add my account to this new phone until I get back to where I can receive calls and texts on my number. Seems like an oversight to me.

There is a provision in WhatsApp to change numbers. In the old phone (assuming you still have it with functional WhatsApp) in the Whatsapp app, go to Settings > Account > Change number and enter both the numbers (old and new) and confirm.
It should be able to migrate the numbers. Then you can register WhatsApp with the new number on the new device.
Disclaimer: I have not tried it, I am providing a solution only from one of my friend's experience.

I think this only works if you former phone number is still active

Try this:

Backup your WhatsApp from old phone using Helium Backup. Follow the instructions for backing up WhatsApp (or any other application for that matter).
Once the backup is complete, you'll find a folder named "Carbon" on your phone storage.
Install Helium on the new phone and get this backed up folder on your new phone and place on the same location on the storage.
Start Helium and backup WhatsApp using the "Restore and Sync" tab available in the app.

Note that, unless rooted, you need to connect your phone to PC using USB cable to start the backup. Follow the instructions given on Play Store page.

Helium (the latest version of Nov 8, 2018) said that for WhatsApp, "Backup Disallowed" so this method does not seem to work.


text:
ADB connection problems on LG Optimus Zone 2 running KitKat
I have purchased an LG Optimus Zone 2 to develop on and I have removed all of the drivers for the phone on my Windows 7 machine. I downloaded the OEM driver from LG and disconnected my network. After installing the OEM driver, I connected my device to my computer (and I have already enabled developer mode on my device and selected USB debugging), but when I run adb devices, it says that no devices are connected.
Clearly it is installed on my machine because in compmgmt.msc it says that it found the LG Android MTP, and on the device itself it asks me for internet connection/MTP/camera or just charging mode (I always select the MTP mode).
I for the life of me can't figure out why it won't connect (I'm trying to test an app locally on the machine). Could anyone help me with this issue?

Rebooting the phone and setting it to connect via USB as Internet Connection -> Ethernet worked for me.
LG also has drivers on their site (http://www.lg.com/us/support-mobile/lg-VS415PP) but I'm not sure they're necessary for this to work, and even with them installed ADB only works when in Ethernet mode.
You're not wrong to be frustrated, though - I've been developing for Android since 2009 and have used dozens of devices, and I've never once had one that required a setting like that for ADB to work (at least not any Google-certified official devices). Weird.
EDIT (Aug 25 2014) - Looks like after the phone is rebooted or unplugged, sometimes it "forgets" its connection mode, or tries to connect as an installer even though it's still set to do an Ethernet internet connection. Re-selecting the statusbar notification and setting it back to internet+ethernet again works, but it's kind of annoying to do regularly. Then again, for the $25 I spent on this phone, I suppose I can't expect too much...


text:
Moving images from one album to another
I would like to move images from one album to another. When I select Move, my phone displays two albums only ("pictures" and "upload"). The problem is that I'd like to move a picture to "all downloads", which I cannot select.
Am I doing something wrong?

Is this the (G+) photos app or Gallery or some manufacturer specific gallery app?

Download and open Xplore File Manager. (This can be done with any file manager, but Xplore is easy to use.)
Navigate to the folder to which you want to move the pictures.
Swipe left, and you will see a list of folders on your right. Select the images you want to move by tapping the ticks on their sides.
Long-press on one of the files, and select Move from the menu that pops up. Then press okay.

First long click on the image you want, select options came and again long click on the image then drag and drop the image to any album you want.

when I select 'move' in settings, it only gives me two possible albums to select from, neither is the one I want to move the image to.  The other albums aren't visible.

You could try a file browser like androzip or es file manager and locate them in the folders move them that way (Camera photos are in DCIM others will be in downloads) usually a long press and move should do it


text:
Not receiving WhatsApp messages unless I open the app when on 3G (on WiFi there is no delay)
I have recently bought a Samsung Galaxy S4, Android version 4.4.2, and for some reason I only receive my WhatsApp messages when I open the app. This only happens when I am on 3G. When connected to a WiFi network, there is no delay at all.
I have uninstalled and re-installed, I have checked the restricted data setting (it is not ticked).
What did I miss?

By "restricted data setting" do you mean "Restrict background data"?

Also uncheck "Restrict background data" on Google Play services

Samsung phones have an option to sync data in the background, disabling it, saves data, as updates are only checked for when an app is open (email/im/whatsapp etc). You need to enable that (see green icon in image below) to let your apps periodically check for data.

Screenshot (click for larger variant)

That's not specific to Samsung devices (though maybe the way they're placing it in the quick access bar is). All Android devices have that. But you're 100% correct in identifying the most likely culprit :)

your right, of course, android has this built in since its early days, but its not so readily accessible on other manufacturers phones - and I've seen this culprit for this issue on a number of family/friends samsung phones. They do not understand it and turn it off, leading to issues.

Could this also be in your "Smart Manager". When you click on "Battery", it says "Optimising". When your apps are selected, it will only updates when you actually opens the app.
And it can also be your "power saving mode" problem in smart manager. Once you click on power saving it shows you restrict all background data, this should be disabled.

The problem and this solution are not restricted to Samsung. Asus has a power saver with 4 levels, two of which turn off networks when asleep.


text:
Google location is inaccurate without GPS
Using a Samsung Galaxy 4S. I'm using Google location history. I pulled location history and broke it down by the minute. GPS was not on, only mobile data and location services. I drove through and area and it just kept showing me on the map with a large circle around me. When I pulled the times it has me in one location and the next minute jumping to a location that is 10 miles away.
How can that happen? Did I lock onto a cell tower? The previous 3 days passed the same place but never picked me up. Times of travel were different on the previous 3 days.

It sounds like you already understand that with GPS turned off the location won't be accurate, so I'm not sure what you're asking. What's left to explain?

Go to settings > location > mode and select high accuracy. This will ensure that the gps is used for location.

Without the GPS on how accurate can it be then? I see other times it looks like I'm walking around me neighborhood. I'm sure that has to do with wifi.

Without gps it will use the mobile towers to find your location

And wifi, as @jennifer mentioned.

authors: Игорь Тулиголовец


text:
Locating android phone
I lost my phone. I have a Samsung Galaxy S5 with the corresponding newest Android version that's automatically delivered. I never really used the Google Service so it isn't authorized or whatever.
I do have a WhatsApp Web and Telegram Web Version.
Is there any way, also a techy way, of checking where my phone is? It doesn't have to be very precise.
Can I for an instance use the Telegram Web Session to make an HTTP Request from my phone to some homepage and check the IP using the access log and from that the imprecise location? Does anyone have other ideas?

In addition to Zoe's answer, you might wish to take a look at our lost-phone tag-wiki for some alternative possibilities.


text:
Using a link with a browser
I have a simple link from an email which I click.
I get the following error message:
"to view this content, install and set up a web browsing app."

I already set the default browser to once chrome and once firefox, but still I get this error.
What could be the problem ? and hints ?
The link is about testing an app:
https://play.google.com/apps/testing/solveraapps.chronicbrowser_wgd_maps It should derict you to a page for installing the app. You will not be able to install the app, (Because you should be member of an Google+ Group), but at least there should come a different message from a website content.

When I long press the link and choose the option to open in another tab it opens ! So that's something to do with how it is linked

Also if I paste the link in Firefox, it opens to Google account sign in. So surely something fishy with the link

kindly copy and paste the link into chrome and stay logged in to your account. Else link looks fine to me.


text:
Problems with downloading apps
I have recently brought a Samsung Cooper and when i was trying to download an app from the market it keeps saying insufficient memory on device. My phone has a 16GB memory card and the internal memory i big enough for the app.
Does anyone have any ideas why its saying this please.
Thanks.

I've had this problem on my Vibrant the last couple days with big apps.  Maybe a Market bug?

One of the more obvious things to attempt is to clear the Market data/cache.
Another thing to try is to backup all data on your SD card. Next - format it from within your Android device, then copy back all the data. Corrupted files on your SD card can also cause installation failures (even if you aren't installing to an SD card), or so I've heard.

OKay, I had this problem a couple days ago. Here's the fix. On the market, look up an app called "MarketFix" It's a very small app, so it shouldn't cause any problems. I was able to download it when I couldn't download anything else. Download MarketFix, run it, and click its one button. I'm not sure exactly what it does, but it solved this problem on my phone.

Correct me if I'm wrong, but the insufficient memory error probably means RAM and not the storage space. If this is the case, I've found that its usually because most of my apps are installed on the phone memory and not on the SD card. Try moving your apps to the SD card from the phone memory. Keep in mind that doing so would prevent you from using that app's homescreen widgets.

It seems like you're kind of mixing terminology here. RAM is not where apps are installed, it's memory used by running processes. Moving apps to your SD card won't free up RAM, but it will free up storage space.

and the OP has already mentioned he has enough space.


text:
Terminal "Permission Denied" - Need more info on error message
I am trying to run an executable from the android terminal with root permissions, but I am constantly receiving the following error:
[ExecutableName] : permission denied

I am confirmed to be loged in as root.  I see the # sign before my prompt and I can run root commands such as chmod.  I saw that the android shell guide says

"The built-in shell has very limited error handling. When you type a command name >incorrectly it will say "permission denied", even though the real problem is that it >couldn't find the command:"

Does anyone know how to get more information on this "permission denied" error?

Can you run ls -l from the directory the executable is in and post that?

Here is what I ran, I just really want more info on what happens when i run it. ---xrwxr-x 1 system sdcard_r  76 Oct 3 2007 doukutsu

Hm, the sdcard_r is interesting. Is the binary on your SD card? I know some devices (but possibly not all) simply won't let you run an executable if it's on the external storage. You could try moving it to /data/local or somewhere similar and see if that helps. I don't know that there's a way to simply get more info from the shell as to why you're getting permission denied, though.

Do you have SuperUser installed? What does the log say?

@MatthewRead It says "terminal emulator allowed"

@eldarerathis That gets me to some different error messages at least which i think is promising.  I now get ./doukutsu not found or running its associated bin, ./doukutsu.bin: 1 Syntax error: word unexpected (expecting ")").  I think this file might have some errors, but i think for the purpose of this post that got me around the error thank you.

I got the expected xxx: not found on both normal and root shell on my Samsung Spica; what's your phone model?

As eldarerathis already mentioned: On many (if not most) devices supporting an SD card, this card is mounted with the noexec option -- which means as the name suggests: "no exec from here", i.e. you cannot execute anything from the sdcard.
Again, one solution was already mentioned by eldarerathis: Try a different storage. You've got the power, your device is rooted.
A second approach would be to re-mount the sdcard without the noexec option. But there's a good reason why noexec is used here; it at least offers an additional level of security. So before using this approach, you should research a bit whether it might trigger unwanted side-effects.

+1 from me - that's the sole reason why SDcards have the executable bit blocked at the filesystem level, to prevent malicious apps wreaking havoc from another place outside of the ROM i.e. SDcard!


text:
What is downloadfile.bin?
At random times, Download manager start downloading series of files named as downlaodfile.bin, downloadfile-1.bin and so on.
I got this issue since today morning. And it happened twice today.
What is this file and why it is getting downloaded? Thanks.
Device information
Device: Moto G4+
Android version: 7.0 Nougat

Screenshot (click for larger variant)

I too faced this today mor. I use moto g3.. I noticed the download and turned off my WiFi and after few mins it disappeared from downloads.

Do you have root access?

No I haven't rooted my device.

I use Moto G3 with Lineage OS (July month build). I had the same issue of auto downloading which started two days ago.
What I have observed is the downloading takes place when I turn on mobile data after 10 AM in morning or 10 PM at night. The files are not shown in ES Explorer app, but I can see those files queued  if I use in-built file manager of Lineage OS. I tried to see which app was using mobile data at that time using My Data Manager app and it showed that Media Storage system app was using the internet.

I mistakenly flagged your post as NAA for its ending posted as a question, but now that I see it the post has value IMO so I have removed the part concerning your question. You can post that as a question separately.

i am new to this site and joined today after seeing this thread for this problem. so i dont know much about the procedures followed here. thanks for the edit

So does this mean, my device is infected?

have you tried any anti virus to scan it ?


text:
Samsung FRP lock - Android 5.1 have access to Settings
Not a duplicate as per other threads, due to the final step, Go to Backup and Reset and do a Factory Data Reset. As per my other answer, this will remove FRP from the device. The FRP lock is still there in my issue.
I have tried the methods listed here: How to bypass "Verify your account" (Factory Reset Protection)
FRP lock on Samsung S5 Neo
Android 5.1
Have full(ish) access to device
Using various methods, 5.1 Samsung camera download trick in this instance, I have access to Settings, and the rest of the phone. This is the 2nd time I have got to this stage as the first time, I followed the tutorial and did Settings > Backup and reset > Factory reset > Erase everything; but the FRP lock was still on!! Even though it isn't in the videos.
I have now got to a stage again where I have device access, but this time I wanted to enable Developer options to enable ADB and force the change in the settings/secure Content Provider, however enabling dev options tapping Build Number doesn't work!!
Any ideas?

Not a duplicate, as I have tried those methods and it doesn't work for me. the final step is "Backup and reset > Erase everything". My FRP lock stays activated even after doing this step!

Enable ADB may work but it needs root

Already tried to flash stock Marshmallow, same issue; but there is another workaround on MM using RealTerm and the dialler.

Honestly... I'm not 100% but here goes....
After fiddling around, flashing a custom bootloader (which got blocked due to FRP lock) I reflashed 5.1 stock ROM and did the camera trick for the 3rd time, however I got boot loops and so the phone started up in Safe Mode.
I then restarted the phone to get out of Safe Mode and the FRP Lock was disabled. I had done nothing different except that the phone booted itself into Safe Mode. After Safe Mode and normal reboot, Settings/Build Number taps worked fine whereas it previously hadn't. I believe Safe Mode to be the crucial step to disable FRP Lock/Google verification.... Now need someone to verify.
Manual way here:

Power off the device.
Press and hold the Power key for one or two seconds to turn on the
device.
When the Samsung logo displays, press and hold the Volume down key
until the lock screen displays.   When the Lock screen is displayed,
Safe mode is displayed in the lower-left corner of the screen. To
exit Safe mode, restart your device.

TLDR; FRP Lock/Google verify > Boot into Safe Mode, then reboot again into normal mode > FRP Lock gone?
The only extra step was that it rebooted into Safe Mode from a privileged state, e.g. I had a lockscreen setup.

Hell yes this worked for me on a Samsung Galaxy Tab A6!!

could you add what version your Tab A6 was running when this worked please


text:
Is there any way to let Facebook run only when I want?
Is there any way to let the Facebook app run only when I want to use it and really close it when i don't need it?
I've already disabled it with autostarts, moved to sd, yet it is still running 24/7.
I don't want to appear on the Facebook chat, also don't want to waste 30mb of ram, and of course there are no FB widgets on the home screen

See also http://android.stackexchange.com/questions/9181/how-can-i-turn-off-facebook-im-permanently which looks to be a similar question, but more focussed on the chat.

I suppose this is the one time when it would be okay to run a task-killer. I suspect it'd by like playing Whack-A-Mole, though, with the app constantly re-starting.

Did you turn off syncing for that account?

Related: http://android.stackexchange.com/questions/9181/how-can-i-turn-off-facebook-im-permanently

You do know that you can log out from the chat? Open the Facebook app, press Chat and then the menu button and "Go Offline"

With root, it's possible to use an app like Ice Box to freeze the app and unfreeze it only when needed. It can be set up to freeze the app again when the phone goes to sleep. In this way the most invasive apps like Facebook, Instagram, will only run when the user want it. (Of course no notifications will appear)

You could always install Titanium Backup (a GREAT app to have) or App Manager (was just released today by JRummy) and "Freeze"/"Unfreeze" the app when you want it to run or not run. This is a very quick/simple/painless operation and there's absolutely no chance for it to run (taking up resources or draining battery) while it's "Frozen" - it just takes up a bit of storage space is all.

I'll try that App Manager. If only they didn't translate from english using google translator... (i don't understand why developers are translating apps with google translator instead asking actual users to do that)

As the person before me said, a good way to do it would be to install TitaniumBackup pro (it's a really great app, can't recommend it enough, and the market commenters seem to agree) and set up a label called facebook which only contains the face book app. Then, create 2 widgets (one that freezes on one that defrosts facebook). It's a bit clunky and takes up 2 home screen cells but it's guaranteed to work :)

Use Greenify to cut off the wake up paths of the Facebook app after greenifying it. This is the best method I know.

Did you try Force Quit?
You can always force quit an app:

Go to your settings
Scroll until you see App manager, Apps, Application Manager (You might need to go to general tab if your Android is not the old version)
Swipe left or right until you arrive at Running tab
Find Facebook app (or whatever app you are trying to force quit)
Press Force Quit on top.

Additional steps (That will erase stored facebook's data on your phone):

Press Clear cache
Press Clear Data
Press Remove or Uninstall (Or Disable if it was installed with as system app)

Greenify prevents apps from running when they are not actively in use.  It works seamlessly without needing to manually freeze and unfreeze it.

There's  an awesome  app called "Tinfoil  for Facebook" that offers all the benefits  of  FB without being so resource - consuming .  Link:  http://www.cnet.com/how-to/use-tinfoil-for-facebook-to-protect-your-privacy-on-android/

While this link may answer the question,
it is better to include the essential parts of the answer here
and provide the link for reference.
Link-only answers can become invalid if the linked page changes

Use a modded android Facebook app. The version might differ from the ones in Google Playstore but at least you will still be able to have the same browsing Facebook experience. The best part is the modded Facebook App won't auto start itself unless you wanted it to.

Please add a link to one such official app from Play Store

https://apk4free.net/facebook-color-mod-messenger-apk/

! This might be something too basic and obvious... But since this was happening to me too, you might be experiencing the same issue... When you press that square on the bottom right of your screen to visualise all the apps you have open, at the top right of your app window, there is a cross and a lock.. as seen in the image attached... The lock should be unlocked.. just click it to unlock it.  If it is locked, the app will never close.
(https://i.sstatic.net/j0b4r.jpg)

i wanted exactly the opposite, to kill it when not on foreground, not making sure it kept open forever (which for facebook is never needed)


text:
Wifi using power even if it off
I am using Lenovo P2 having Android 7.0. It having 5100 mah battery. In the battery usage I noticed that the wifi using power even if it turns off. I did a factory reset. But still have the same problem.
I have attached a screenshot after did the below procedures.
1) Turn off wifi
2) Fully charge the phone
3) Restart the phone just after unplug
4) Use the phone more than one day without turn on the wifi. Only use the mobile data.

@beeshyams i can find it in location. Lets see after one day of usage

Configure as shown . These are for Marshmallow and may differ on your device

Settings → Google → Services → Location → 3-dot menu → Scanning → Wi-Fi scanning → Disable

(As confirmed by OP on Nougat Settings  → Location → Scanning → Wi-Fi scanning → Disable )

Settings → Wi-Fi → 3-dot menu → Advanced → Keep Wi-Fi on during sleep → Never
Settings → Wi-Fi → 3-dot menu → Advanced → Network notification → Disable

This should fix the problem in all likelihood

settings-location-scanning-wlan scanning turn off it.


text:
Is there a way to transmit all sound over wifi from my tablet to my pc?
I want to transmit my sound (from youtube, music files on the tablet, etc) from my tablet to my computer.
The closest I can get is controlling my library of music on my computer, but I really want to be able to play a youtube video from the youtube app on my tablet and have it play through my computer.
I don't mind buying apps if that is what I need. Any help will be appreciated.

I don't think you will be able to use the youtube app to get where you want to go but there are a quite a few DLNA (google it) based alternatives out there which could be what you are looking for. I am currently evaluating some of them but my objective is a little bit different and probably the toolset as well. Good luck, maybe someone else have good app suggestions.

I'm assuming by the title that you don't want to use bluetooth? It only goes ~30ft, but it's fairly simple and works well in most scenarios. Your laptop most likely supports A2DP, and thus you don't need to buy or download anything.

Oh, and A2DP supports controls such as play/pause/skip/volume, which is a nice bonus.

In general it is at the moment impossible to stream all audio from your android to another receiver.
There's no app which can help you because android itself has no APIs for grabbing audio.
But sure you may use a specific player, e.g. one for YouTube and one for music and so on.
I really know what I'm talking about because I'm developing an app for general streaming audio since several months (it's really hard work with rooting, kernel-module etc.).

Try looking into Plex. I have never used it, but I hear it is good and works on a multitude of devices.

I'm not sure if this is a solution for you but to conserve my processing power for gaming I stream movies on my tablet right beside me while I play and at night I'd like to listen to all of my audio through my USB headphones. I plugged a dual-sided 1/8th inch jack into my tablet and the microphone port on my computer, go into Sound>Recording Devices, right click on the proper device, go to properties, Listen, then check the "Listen to this device" and apply. Occasionally I'll get a weird feedback noise but it's solved my problem and I hope it can help anyone else looking to do something similar.

For the Youtube specific part of your request specifically, Google have released an official YouTube Remote app, that allows you to control playing YouTube videos on a PC from an Android phone/tablet. You visit http://youtube.com/leanback on your PC, and the app then interacts with it.


text:
Got stuck with a Pop-up on the main screen
I have Samsung Galaxy E5 (SM-E500H) with Android 5.1.1. Recently, I installed few apps and after that, I encountered an annoying little pop-up below the screen sometimes. I got into uninstalling some of those apps but the pop-up didn't go away. How can I get rid of that? More technically, how can I find out which process is the cause of that?

Screenshot (click to enlarge)

Thanks for all the helpful comments. Answer to: Determine which app is drawing on top of other apps? helped me a lot. I monitored the apps having special permission to put an overlay on top of other apps. I waited until the pop-up showed and with a little compare with the preceding apps list I could find the causing app. Thanks @Firelord.
So, I want to expose the app that caused this unwanted and annoying pop-up:

Official name: Premium Wallpapers HD
Package name: com.pixign.premiumwallpapers
Play Store link:
  https://play.google.com/store/apps/details?id=com.pixign.premiumwallpapers&hl=en

Interesting. So you finally found the troublemaker. I vaguely remember that the poster of the question where the linked answer exists also found the same app as the troublemaker. They mentioned it in a (currently deleted) comment. There's more. The same app has been discussed here: Why does this ad keep showing up below my notification bar and how do I stop it? I advise everyone to use that app carefully.

Yeah, finally! It's interesting to say when I was watching videos, it sometimes paused the video for no reason and strangely NOT showing its popup (maybe doing other malicious things!?). Btw, thanks @Firelord, your answer really helped.

That AD seems similar to the Google ADs. It's not related to TouchWiz. My suggestion is to search through your installed apps for something that may seem suspicious, or that requires too many permissions, and uninstall it.
Furthermore, I know of no apps that do overlay an existing application with ads, so be careful to not have installed some malware. Since I can see the CM Security antivirus, you should enable the heuristics in the app and scan your system.
Lastly, if your device is rooted, I recommend to install an AD blocker app.

I did all of what you said; I uninstalled 3 malicious-look-a-like apps; I activated real-time protection and deep heuristic lookup of CM. But at last, the problem still didn't disappear.

Is your device rooted?

Yes it is. I forgot to say, I also installed AD Blocker but for no reason it didn't block this popup (or at least the inner advertisement that popup held).

If this is the case, my only other idea is to both install an app called "Lucky Patcher", which will tell you what applications are loaded with Google Ads, and another called "Titanium Backup", which (since you're root), can backup a whole app plus its data.

Next, edit Titanium's preferences, by finding an option called "Backup app external data", and set it to "Always". Then, by looking at Lucky Patcher, firstly backup and then uninstall any app which uses Google Ads, one at a time. Anytime you uninstall something, reboot your device and check if the problem has been solved. If no, then restore the deleted app, and proceed this way till the problem is solved.


text:
Android - Limit app permissions *before* installing app
Whenever I go to change app permissions for on app on my Android, I do it after it has already been installed. Is there any way I can modify those permissions before I do the installation?
Update:
With the traditional way a period of time passes, however small, between the time you install the app and the time you update/restrict its permissions. During this period the app could be accessing the data (and uploading to its server) that you are trying to restrict (contacts, identity, etc.). Right?

The permissions would be applied as it is being installed.

To my knowledge there's no way to apply that "before" or "during" install – but there definitely is for "on access" (i.e. whenever the app tries to access something, but before it succeeded). But those solutions I know in this context require root access on the device. Is that available?

You can't change app settings before the app has been installed.
However if you are concerned about data leakage I would do the following:

Download the apk to your device
Disable all network connections
Install the app
Change the app permissions according your preferences
Open the app manager and select the just installed app
Force the app to quit and delete the app data and caches (just to make sure)

Afterwards you can safely re-enable network access
Anyway, for common permissions the app have to ask before it can be used the first time. Therefore it is unclear to me what permissions you are referring to that could be directly used without that you have explicitly granted access to.

The "offline" installation is not the quickest method (and might not accomplish the task). As for the prompts for first time access, I do not feel like I have been getting them consistently (or accurately?) during use - could be just what the app is doing at that time. This is what's confusing and leaves me wondering, and wishing I could set it and get it over with at installation time. Hopefully Google will introduce this feature in near future.

Some apps still target older Android versions where the permission model was not yet introduced. Such apps don't have to ask for a permission they just get it. But in November 2018 this will change. Then targeting an old Android version will be no longer allowed..

Android permissions are anarchy. You can disable in newer Android versions, but between installation and permission settings adjustment, all your data can be accessed and uploaded to the app's server.


text:
Why am I getting shopping trolley notifications about local store savings?
I am getting "Shopping Trolley" notifications appearing regularly.
The notification looks like this:

The notification is about "Store savings" at a local supermarket and that is it!

Is this notification from Google Maps or another application like Google Assistant? I'm struggling to find the specific setting to disable the notification.
I am also interested to know if this notification could in any way be targeted advertising generated by the store. My marketing preferences with the store are opt-out and this strikes me as very dumb advertising. Surely Google isn't doing this? Is there a means that a store can generate notifications like this? Could it be targeted if they have my email address?
These are pain and I want to understand why they are spamming me and disable them without disabling everything else.
I can see various options under Google Maps, settings, notifications. Which setting would apply? Could it be "New on maps, Get occasional updates about new features in your area"? I can't see what setting to suppress!
Thanks for all help.

This notification isn't from Google Maps at all, but from Google Assistant a.k.a. Google Now. All the notifications with the G icon are from that app. It's not controlled by the store or targeted to you: it's just about the place that Google thinks you're at. The location update rate isn't very fast (to save energy use), so sometimes you only see the notification after you've already left, or just if you go past the place.
To control it, start the Google app or swipe your homescreen left to open the Google Now page. Then press the "hamburger" icon (looks like ≡) to open the navigation drawer, and choose Settings. From there, scroll down to Your feed and click that. On the next page, scroll down past Get notified about to see a list of all the types of Google Now card you can get notified about. Places is the one about nearby places. You can also turn off all the notifications at once on this page.
Note that turning off the Places option will also hide the similar notifications about restaurant and bar reviews, timetables when you're in a bus or train station.


text:
Is the secret flag `chrome://flags` a legit trick or scam?
I've been seeing these "secret flags" (e.g. chrome://flags/#max-tiles-for-interest-area) for Chrome browser on Android posted all over the internet.
Are these legitimate tricks, or scams to phish users?

Chrome flags (accessed by going to chrome://flags on Chrome) are basically on/off switches for experimental and dangerous (hence the warning at the top of the flags page) features not yet officially announced in a Chrome release.
They are most definitely not scams, but are experiments intended for testing by developers and beta testers of Chrome.


text:
Re-link installed apps to Play Store
After installing custom ROM and downloading most of my apps from PC and installing them offline, my Play Store account is peculiar. Some apps I uninstalled weeks ago but I can still see on Play Store desktop, many apps are shown installed on Play Store mobile but not on the desktop, and many unlinked apps.
So what can I do?

If your phone is rooted, then Titanium Backup app has a relevant feature that might work:

Tap the app you want to link from the list of apps on the titanium backup app
switch to the "Special features" tab
You will find "attach to market(forced)"

There's also an XDA thread about this.

I overcame this by clicking the install button on the desktop Play Store on apps one by one.
On my desktop, I go to Google Play then find the un-linked apps one by one and click on the install button. Then on my phone, I can see those apps are included on my apps list in Play Store app.


text:
`fastboot devices` command returns a device with question marks
I am trying to root an Acer Iconia Tab A200 tablet using a script. I have adb working and fastboot works too, however, command fastboot devices returns question marks. E.g.:
List of devices attached
20819705215     device

$ fastboot devices
$ adb reboot-bootloader
$ fastboot devices
????????????    fastboot
$ _

Original screenshot of the terminal screen
I execute the command fastboot devices in the bootloader which is already unlocked. Using Ubuntu 14.04, udev settings are already set (the file with vendors IDs) according to the ID result of the command lsusb:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3201", MODE="0666", GROUP="plugdev", OWNER="ln"

What can I do to get the correct result? How can I make fastboot work well?

It can be a cable fault. Change the cable. In my Redmi 3 on a cable from an old Xperia P, I've had question marks. When I replaced the cable with a newer cable from Redmi Note 2 and voila - the correct number was displayed instead of the question marks.

Wow ! changing cables for me worked too. Cheers

In my case, it was the phone, an unsupported/rogue Chinese firmware that had the option "fastboot" but was really just a nickname for a type of connection supported by their own software. Tried my setup (cable + PC) on different, 3, phones and it all worked except this one. Even the brand was murky with the only label on it being "k48".

Since you're on Linux, try sudo fastboot devices. I found that was needed with a later Linux than you have (RHEL7.9).


text:
I move a folder in Android root directory to SDcard directory in internal phone memory. Is there a way to restore it back?
I move a folder in the Android root directory to SDcard directory in the internal phone memory. The folder was custpack in the root directory and the phone will not boot now.
I can still access a recovery mode, but it only has a stock recovery from the manufacturer. No custom recovery available for my phone.

Is there any way I can grab contents of the SDcard directory using developers tools?

One of the menus in the stock recovery is to ADB side load file name.

Is there any hope I can access the phone memory using a PC somehow and restore the folder?

In the Android stock recovery menu, I have the option to install package from an SD card. The phone does have an SD card slot.

Is it possible to create a zip file that will some how restore the custpack folder back to root directory? I do have the deleted folder in my PC.

One method you can try is download and use Aroma File Manager.
It's a recovery based file manager. Means you can access all files and do all file operations like cut, move etc.
But not sure if it will work on un rooted device.
But you can try.

thanks. I will try Aroma. But looks like I have to push the aroma file manager back to the phone? I tried to push files in stock recovery it keeps giving me a message "error: closed" . I did root the phone using VROOT before I delete the custpack folder.

First copy aroma to your SD card from computer. Then use it in your phone. Then you can move the specified folder to your root folder whichever.

Got it.. let me try aroma file manager.. I hope I can run it .