8

我见过几个应用程序和广告网络,例如 startapp 通过代码更改 android 网络浏览器主页。这怎么可能?

我已经查看了 startapp sdk,但我没有设法找到他们更改主页的部分。

我也看过BrowserSettingscom.android.browser.BrowserSettings

BrowserSettings中,有一个接口叫做setHomepage(Context, String)

public void setHomePage(Context context, String url) {
    Editor ed = PreferenceManager.
            getDefaultSharedPreferences(context).edit();
    ed.putString(PREF_HOMEPAGE, url);
    ed.commit();
    homeUrl = url;
}

我不太了解 java/android,所以如果我错了,请纠正我:setHomepage()未声明为静态的,因此无法从其他活动中调用它。所以我不能用这个。

我看不到任何应用于共享首选项的模式,因此这意味着默认情况下它将采用私有模式,我无法编辑共享首选项或?

有人说可能与 contentProvider/Resolver 一起做。

BrowserSettings.java的链接

任何帮助或想法将不胜感激:)

4

3 回答 3

3

我和Diane HackBorn(谷歌的 Android 工程师)一起讨论这个问题:这是不可能的,因为这将是一个平台安全漏洞。

如果它碰巧是可能的,将通过某种黑客攻击(即:具有根访问权限的应用程序可以直接写入浏览器应用程序设置文件)。

于 2012-09-12T16:52:55.160 回答
1

我看到你提到了 startapp。我查看了他们反编译的SDK,但我找不到任何关于“更改主页部分”的信息。

我也知道他们这样做,但我无法在 SDK 中找到它。也许对android有更好理解的人可以看看它。我有一部 2.2 版的安卓手机,没有 root 访问权限,他们设法更改了主页。

于 2012-09-12T17:08:16.367 回答
0

有了root权限,你可以去/data/app/com.android.browser/shared_prefs

你有共享首选项的 XML 文件。

您只需要编辑PREF_HOMEPAGExml 条目。

没有 root 是不可能的,因为您需要 root 权限才能访问该目录。

于 2012-09-19T11:54:13.050 回答