AndroidのHttpURLConnectionのデフォルトのUserAgent

HttpURLConnectionで実装していた部分をHttpClientに変えてみたら、UserAgentが変わってしまいました。
そこでHttpClientのリクエストにHttpURLConnectionのデフォルトのUserAgentをセットしてやろう思ったのですが、それがなかなか見つからなかったのでメモっときます。

HttpURLConnectionでUserAgentをセットせずに通信すると、

Dalvik/1.4.0 (Linux; U; Android 2.3.6; Nexus S Build/GRK39F)

な文字列が入ってリクエストが送られます。

WebViewのデフォルトのUserAgentは、WebSettings#getUserAgentString()で取得できて

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-tw; Nexus S Build/GRK39F) 

みたいなのがもらえるんですが、似てるけどちょっと違う。
ちなみにWebSettingsでは

    private synchronized String getCurrentUserAgent() {
        Locale locale;
        synchronized(sLockForLocaleSettings) {
            locale = sLocale;
        }
        StringBuffer buffer = new StringBuffer();
        // Add version
        final String version = Build.VERSION.RELEASE;
        if (version.length() > 0) {
            buffer.append(version);
        } else {
            // default to "1.0"
            buffer.append("1.0");
        }  
        buffer.append("; ");
        final String language = locale.getLanguage();
        if (language != null) {
            buffer.append(language.toLowerCase());
            final String country = locale.getCountry();
            if (country != null) {
                buffer.append("-");
                buffer.append(country.toLowerCase());
            }
        } else {
            // default to "en"
            buffer.append("en");
        }
        // add the model for the release build
        if ("REL".equals(Build.VERSION.CODENAME)) {
            final String model = Build.MODEL;
            if (model.length() > 0) {
                buffer.append("; ");
                buffer.append(model);
            }
        }
        final String id = Build.ID;
        if (id.length() > 0) {
            buffer.append(" Build/");
            buffer.append(id);
        }
        final String base = mContext.getResources().getText(
                com.android.internal.R.string.web_user_agent).toString();
        return String.format(base, buffer);
    }

な感じで頑張って文字列を作ってるので、HttpURLConnectionのUserAgentもどっかで作ってるんだろうと思ってソースコードを追っていたのですが、どうもAndroidの方では作ってないようです。

そこでSystemの情報をあさっていたところ、

System.getProperty("http.agent");

の値が

Dalvik/1.4.0 (Linux; U; Android 2.3.6; Nexus S Build/GRK39F)

と出ました。
何かそれっぽいですね。

URLクラスのURLStreamHandlerがこの辺の値を取りに行ってるのでしょうか。
時間があればもうちょっと追ってみたいところですが、とりあえずそれっぽいの取れたんでよしとします。