读书人

探究Android中浏览器UA的生成对策

发布时间: 2012-08-24 10:00:20 作者: rapoo

探究Android中浏览器UA的生成策略

探究Android中浏览器UA的生成策略

?

Android系统中内置了浏览器应用/system/app/Browser.apk,默认它生成User Agent 的策略如下:

以Android2.3为例,其具体逻辑在:android.webkit.WebSettings.getCurrentUserAgent() 方法中。

?

Mozilla/5.0 (Linux; U; Android $(VERSION); $(LOCALE); $(MODEL) Build/$(BUILD)) AppleWebKit/533.1 (KHTML, like
Gecko) Version/4.0 Mobile Safari/533.1

?

上面的$表达式会被求值,

VERSION:android.os.Build.VERSION.RELEASE (ro.build.version.release)MODEL:android.os.Build.MODEL(ro.product.model);BUILD:android.os.Build.ID(ro.build.id);LOCALE:当前设备中的语言设置,动态变化;

除Locale之外,其余几个都是Android系统属性,这些属性的初始值通常都定义在build\tools\buildinfo.sh文件中,要覆盖它们,需要向device\HW_X\P_XX\system.prop文件中添加新值。

?

但需要注意的是,一些以ro.开始的属性是只读属性 因此无法覆盖,修改其值的正确方法是,从源头,例如:ro.product.model 属性 在buildinfo.sh文件中的定义如下:

PRODUCT_MODEL := S41IA

读书人网 >Android

热点推荐