Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get Chrome History & Bookmarks in Android Marshmallow (API>=23)?

Till API Level 22 (i.e. till Lollipop), there has been a way to read History and Bookmarks from the Chrome app (as shown in this thread) using the permission com.android.browser.permission.READ_HISTORY_BOOKMARKS.

Now, in Android API=23 Marshmallow, since the entire Browser Bookmark system has been removed in Marshmallow (changes here), the above method does not work anymore.

Here is the thread that shows why this is not possible anymore.

In my research so far, I have not found good news. Google has definitely killed the System Bookmarks feature(here & here), question is if Chrome Browser would be exposing it in any manner?

Is there a replacement / way to read Bookmarks and History from Chrome (even Chrome specific would answer this question) going forward in Android Marshmallow?

like image 612
user1406716 Avatar asked Nov 02 '15 20:11

user1406716


People also ask

Why can't I see my Chrome history?

Log in to your Google Chrome and go to the Data & privacy section. Then, find the Web & App Activity option. If it is turned on, you can get back your browsing history from here.


1 Answers

Contrary to the cited documentation, com.android.browser.permission.READ_HISTORY_BOOKMARKS is still defined by the framework, and can still be obtained by apps. Unfortunately, on Marshmallow and later, Chrome checks for a different permission, one that regular apps aren't allowed to obtain. For compatibility reasons, when that permission check inevitably fails, Chrome returns zero rows instead of throwing a SecurityException.

You can see the source code here:

query() calls hasReadAccess(), which calls hasPermission("com.android.browser.permission.READ_HISTORY_BOOKMARKS"), which on API >= M ignores the permission argument and instead checks for com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS. This permission is limited to system apps and apps signed with Google's key.

like image 71
j__m Avatar answered Oct 17 '22 00:10

j__m