Commit a53c9ff5 authored by Max Lv's avatar Max Lv

run nodejs in non-root user

parent d1c75d99
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-feature <uses-feature
...@@ -40,12 +39,6 @@ ...@@ -40,12 +39,6 @@
android:name=".ShadowsocksService" android:name=".ShadowsocksService"
android:enabled="true"/> android:enabled="true"/>
<receiver android:name=".ShadowsocksReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application> </application>
</manifest> </manifest>
...@@ -34,17 +34,17 @@ LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/pdnsd ...@@ -34,17 +34,17 @@ LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/pdnsd
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS) #include $(CLEAR_VARS)
LOCAL_MODULE := shadowsocks #LOCAL_MODULE := shadowsocks
LOCAL_SRC_FILES := shadowsocks/local.c shadowsocks/encrypt.c #LOCAL_SRC_FILES := shadowsocks/local.c shadowsocks/encrypt.c
LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/libev/ -I$(LOCAL_PATH)/openssl/include -std=c99 #LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/libev/ -I$(LOCAL_PATH)/openssl/include -std=c99
LOCAL_STATIC_LIBRARIES := libev libcrypto #LOCAL_STATIC_LIBRARIES := libev libcrypto
LOCAL_LDLIBS := -llog #LOCAL_LDLIBS := -llog
include $(BUILD_EXECUTABLE) #include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS) include $(CLEAR_VARS)
...@@ -57,9 +57,20 @@ LOCAL_LDLIBS := -ldl -llog ...@@ -57,9 +57,20 @@ LOCAL_LDLIBS := -ldl -llog
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)
subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \ include $(CLEAR_VARS)
crypto \
)) LOCAL_MODULE:= node
LOCAL_SRC_FILES:= \
node.c
LOCAL_LDLIBS := -ldl
include $(BUILD_SHARED_LIBRARY)
#subdirs := $(addprefix $(LOCAL_PATH)/openssl/,$(addsuffix /Android.mk, \
#crypto \
#))
include $(subdirs) #include $(subdirs)
#include <jni.h>
void Java_com_github_shadowsocks_Node_exec(JNIEnv *env, jobject thiz, jstring cmd) {
const char *str = (*env)->GetStringUTFChars(env, cmd, 0);
setenv("LD_LIBRARY_PATH", "/vendor/lib:/system/lib", 1);
setegid(getgid());
seteuid(getuid());
system(str);
(*env)->ReleaseStringUTFChars(env, cmd, str);
}
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<string name="proxyed_help">选择使用Shadowsocks的应用:</string> <string name="proxyed_help">选择使用Shadowsocks的应用:</string>
<string name="crash_alert">检测到一次非正常退出,状态已重置</string> <string name="crash_alert">检测到一次非正常退出,状态已重置</string>
<string name="copy_rights">Shadowsocks是一款开源软件,依照GPLv3协议发布。\n\n如果您有任何问题,请前往项目网站进行反馈。 <string name="copy_rights">Shadowsocks是一款开源软件,依照GPLv3协议发布。\n\n如果您有任何问题,请前往项目网站进行反馈。
\n\n(gaeproxy.googlecode.com)</string> \n\n(github.com/clowwindy/shadowsocks)</string>
<string name="about">关于</string> <string name="about">关于</string>
<string name="proxy_type">代理类型</string> <string name="proxy_type">代理类型</string>
<string name="connecting">正在连接...</string> <string name="connecting">正在连接...</string>
...@@ -83,455 +83,5 @@ ...@@ -83,455 +83,5 @@
<string name="system_proxy">系统代理</string> <string name="system_proxy">系统代理</string>
<string name="system_proxy_summary">设置系统代理,无需ROOT权限,仅工作在Android 4.0及以上系统,并仅对当前Wifi连接生效</string> <string name="system_proxy_summary">设置系统代理,无需ROOT权限,仅工作在Android 4.0及以上系统,并仅对当前Wifi连接生效</string>
<!--
Zirco Browser for Android Copyright (C) 2010 - 2011 J. Devauchelle
and contributors. This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License version
3 as published by the Free Software Foundation. This program is distributed
in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
-->
<string name="ApplicationName">Zirco Browser</string>
<string name="ApplicationNameUrl">Zirco Browser - %s</string>
<string name="ApplicationDescription">使用Zirco Browser让你更好的使用互联网</string>
<string name="AboutActivity.Title">关于</string>
<string name="AboutActivity.LicenseText">版权:</string>
<string name="AboutActivity.UrlTextValue">http://code.google.com/p/zirco-browser/</string>
<string name="AboutActivity.LicenseTextValue">GPL v3</string>
<string name="Main.MenuAddBookmark">添加书签</string>
<string name="Main.MenuShowBookmarks">书签</string>
<string name="Main.MenuShowHistory">历史</string>
<string name="Main.MenuShowDownloads">下载</string>
<string name="Main.MenuPreferences">配置</string>
<string name="Main.MenuOpen">打开</string>
<string name="Main.MenuOpenNewTab">在新页中打开</string>
<string name="Main.MenuDownload">下载</string>
<string name="Main.DownloadStartedMsg">下载开始</string>
<string name="Main.DownloadFinishedMsg">下载结束</string>
<string name="Main.DownloadErrorMsg">下载错误: %s</string>
<string name="Main.ToastTabSwitchMessage">页 %s</string>
<string name="Main.ToastTabSwitchFullMessage">页 %1$s: %2$s</string>
<string name="Main.VndErrorTitle">不能打开网址</string>
<string name="Main.VndErrorMessage">本程序不支持这个网址: %s.</string>
<string name="BookmarksListActivity.Title">书签</string>
<string name="BookmarksListActivity.MenuSortMode">排序方式</string>
<string name="BookmarksListActivity.MenuAddBookmark">增加书签</string>
<string name="BookmarksListActivity.Empty">没有书签</string>
<string name="BookmarksListActivity.MenuOpenInTab">打开新页</string>
<string name="BookmarksListActivity.MenuEditBookmark">编辑书签</string>
<string name="BookmarksListActivity.MenuDeleteBookmark">删除书签</string>
<string name="BookmarksListActivity.ImportBookmarks">导入书签</string>
<string name="BookmarksListActivity.ExportBookmarks">导出书签</string>
<string name="BookmarksListActivity.ClearBookmarks">清空所有书签</string>
<string name="BookmarksListActivity.ImportingBookmarks">正在导入书签中...</string>
<string name="BookmarksListActivity.ExportingBookmarks">重在导出书签中...</string>
<string name="BookmarksListActivity.ClearingBookmarks">正在清空书签中...</string>
<string name="BookmarksListActivity.AlphaSortMode">顺序</string>
<string name="BookmarksListActivity.RecentSortMode">倒序</string>
<string name="BookmarksListActivity.ImportSource">选择导入源</string>
<string name="BookmarksListActivity.AndroidImportSource">Android浏览器的书签</string>
<string name="BookmarksListActivity.ExportDialogTitle">选择导出目标</string>
<string name="EditBookmarkActivity.Title">编辑书签</string>
<string name="EditBookmarkActivity.TitleAdd">增加书签</string>
<string name="EditBookmarkActivity.TitleLabel">显示名称:</string>
<string name="EditBookmarkActivity.UrlLabel">地址Location:</string>
<string name="HistoryListActivity.Title">历史</string>
<string name="HistoryListActivity.MenuOpenInTab">打开新页</string>
<string name="HistoryListActivity.MenuDelete">删除</string>
<string name="DownloadListActivity.Title">Zirco Browser-下载</string>
<string name="DownloadListActivity.Empty">没有下载</string>
<string name="DownloadListActivity.Aborted">%s (取消)</string>
<string name="DownloadListActivity.Finished">%s (完成)</string>
<string name="AdBlockerWhiteListActivity.Title">Zirco Browser - Ad 白名单</string>
<string name="AdBlockerWhiteListActivity.Empty">白名单是空的.</string>
<string name="AdBlockerWhiteListActivity.AddMessage">添加至白名单</string>
<string name="AdBlockerWhiteListActivity.ClearMessage">清空白名单</string>
<string name="PreferencesActivity.GeneralSettingsCategoryTitle">通用设置</string>
<string name="PreferencesActivity.HomePagePreferenceTitle">主页设定</string>
<string name="PreferencesActivity.HomePagePreferenceSummary">定义你的默认主页</string>
<string name="PreferencesActivity.FullScreenPreferenceTitle">是否全屏幕</string>
<string name="PreferencesActivity.FullScreenPreferenceSummary">在全屏幕模式下显示 (需要重新启动程序).</string>
<string name="PreferencesActivity.ShowToastOnTabSwitchPreferenceTitle">页切换时是否显示对话框</string>
<string name="PreferencesActivity.ShowToastOnTabSwitchPreferenceSummary">如果选中,也切换时会有提示</string>
<string name="PreferencesActivity.BrowserSettingsCategoryTitle">浏览器设定</string>
<string name="PreferencesActivity.HistorySizePreferenceTitle">历史记录大小</string>
<string name="PreferencesActivity.HistorySizePreferenceSummary">每天历史记录大小</string>
<string name="PreferencesActivity.EnableJavascriptPreferenceTitle">是否支持JavaScript</string>
<string name="PreferencesActivity.EnableJavascriptPreferenceSummary">如果不支持JavaScript,很多网站效果不能打开,建议打开.</string>
<string name="PreferencesActivity.LoadImagesPreferenceTitle">是否加载图像</string>
<string name="PreferencesActivity.LoadImagesPreferenceSummary">使用或者不使用图像</string>
<string name="PreferencesActivity.PrivacyPreferenceTitle">隐私设定</string>
<string name="PreferencesActivity.PrivacyPreferenceSummary">管理你的上网痕迹,确保隐私</string>
<string name="PreferencesActivity.EnableFormDataPreferenceTitle">保存表单数据</string>
<string name="PreferencesActivity.EnableFormDataPreferenceSummary">可保存数据,减少你下次输入时间</string>
<string name="PreferencesActivity.EnablePasswordsPreferenceTitle">保存密码</string>
<string name="PreferencesActivity.EnablePasswordsPreferenceSummary">可保存密码,让你下次访问更加方便</string>
<string name="PreferencesActivity.EnableCookiesPreferenceTitle">允许cookie</string>
<string name="PreferencesActivity.EnableCookiesPreferenceSummary">是否允许Cookie</string>
<string name="PreferencesActivity.PrivacyClearHistoryTitle">清空历史</string>
<string name="PreferencesActivity.PrivacyClearFormDataTitle">清空表单数据</string>
<string name="PreferencesActivity.PrivacyClearCacheTitle">清空缓存</string>
<string name="PreferencesActivity.PrivacyClearCookiesTitle">清空cookies</string>
<string name="PreferencesActivity.BarDurationPreferenceTitle">工具条显示时间</string>
<string name="PreferencesActivity.BarDurationPreferenceSummary">显示工具条多长时间自动隐藏</string>
<string name="PreferencesActivity.BarDuration1sec">1 秒</string>
<string name="PreferencesActivity.BarDuration2sec">2 秒</string>
<string name="PreferencesActivity.BarDuration3sec">3 秒</string>
<string name="PreferencesActivity.BarDuration4sec">4 秒</string>
<string name="PreferencesActivity.BarDuration5sec">5 秒</string>
<string-array name="BarDurationEntries">
<item>@string/PreferencesActivity.BarDuration1sec</item>
<item>@string/PreferencesActivity.BarDuration2sec</item>
<item>@string/PreferencesActivity.BarDuration3sec</item>
<item>@string/PreferencesActivity.BarDuration4sec</item>
<item>@string/PreferencesActivity.BarDuration5sec</item>
</string-array>
<string-array name="BarDurationValues">
<item>1000</item>
<item>2000</item>
<item>3000</item>
<item>4000</item>
<item>5000</item>
</string-array>
<string name="PreferencesActivity.BubblePositionPreferenceTitle">工具条图标</string>
<string name="PreferencesActivity.BubblePositionPreferenceSummary">工具条图标位置</string>
<string name="PreferencesActivity.BubbleRight"></string>
<string name="PreferencesActivity.BubbleLeft"></string>
<string name="PreferencesActivity.BubbleBoth">两边都有</string>
<string-array name="BubblePositionEntries">
<item>@string/PreferencesActivity.BubbleRight</item>
<item>@string/PreferencesActivity.BubbleLeft</item>
<item>@string/PreferencesActivity.BubbleBoth</item>
</string-array>
<string-array name="BubblePositionValues">
<item>right</item>
<item>left</item>
<item>both</item>
</string-array>
<string name="PreferencesActivity.AdBlockerSettingsCategoryTitle">Ad广告设定</string>
<string name="PreferencesActivity.EnableAdBlockerPreferenceTitle">是否允许 Ad-blocker</string>
<string name="PreferencesActivity.EnableAdBlockerPreferenceSummary">Ad广告必须要求JavaScript能使用</string>
<string name="PreferencesActivity.AdBlockerWhiteListPreferenceTitle">白名单</string>
<string name="PreferencesActivity.AdBlockerWhiteListPreferenceSummary">管理 Ad广告白名单.</string>
<string name="Commons.Ok">确定</string>
<string name="Commons.Cancel">取消</string>
<string name="Commons.PleaseWait">请等待</string>
<string name="Commons.Yes"></string>
<string name="Commons.No"></string>
<string name="Commons.NoUndoMessage">操作没有完成,是否继续?</string>
<string name="Commons.Today">今天 (%s)</string>
<string name="Commons.Yesterday">昨天 (%s)</string>
<string name="Commons.DaysAgo">%1$s 以前 (%2$s)</string>
<string name="Commons.JavaScriptDialog">JavaScript对话框</string>
<string name="Commons.ClearHistory">清空历史记录</string>
<string name="Commons.ClearingHistory">正在清空历史记录...</string>
<string name="Commons.ClearFormData">清空表单数据</string>
<string name="Commons.ClearingFormData">正在清空表单数据...</string>
<string name="Commons.ClearCache">清空缓存</string>
<string name="Commons.ClearingCache">正在清空缓存...</string>
<string name="Commons.ClearCookies">清空Cookies</string>
<string name="Commons.ClearingCookies">正在清空缓存...</string>
<string name="Commons.SDCardErrorTitle">SD卡不能使用</string>
<string name="Commons.SDCardErrorNoSDMsg">找不到SD卡</string>
<string name="Commons.SDCardErrorSDUnavailable">SD卡不能使用</string>
<string name="Commons.Close">关闭</string>
<string name="DATE_FORMAT_ISO8601">yyyy-MM-dd\'T\'HH:mm:ss.SSS</string>
<!-- 0.3.1 -->
<string name="PreferencesActivity.AboutCategoryTitle">关于</string>
<string name="PreferencesActivity.AboutPreferenceTitle">关于</string>
<string name="PreferencesActivity.AboutPreferenceSummary">本程序信息.</string>
<!-- 0.3.2 -->
<string name="BookmarksListActivity.MostUsedSortMode">更多..</string>
<string name="PreferencesActivity.DefaultZoomPreferenceTitle">默认缩放级别</string>
<string name="PreferencesActivity.DefaultZoomPreferenceSummary">设定默认缩放</string>
<string name="PreferencesActivity.DefaultZoomClose">关闭</string>
<string name="PreferencesActivity.DefaultZoomMedium"></string>
<string name="PreferencesActivity.DefaultZoomFar">非常大</string>
<string-array name="DefaultZoomEntries">
<item>@string/PreferencesActivity.DefaultZoomClose</item>
<item>@string/PreferencesActivity.DefaultZoomMedium</item>
<item>@string/PreferencesActivity.DefaultZoomFar</item>
</string-array>
<string-array name="DefaultZoomValues">
<item>CLOSE</item>
<item>MEDIUM</item>
<item>FAR</item>
</string-array>
<string name="StartPage.Welcome">欢迎!</string>
<string name="StartPage.Bookmarks">使用最多的书签</string>
<string name="StartPage.History">历史记录</string>
<string name="ChangelogActivity.Title">更新历史</string>
<string name="PreferencesActivity.ChangelogPreferenceTitle">更新日志</string>
<string name="PreferencesActivity.ChangelogPreferenceSummary">本应用程序更新日志</string>
<string name="HomepagePreferenceActivity.Title">主页</string>
<string name="HomepagePreferenceActivity.Prompt">主页</string>
<string name="PreferencesActivity.HomepageStart">开始页</string>
<string name="PreferencesActivity.HomepageBlank">空白页</string>
<string name="PreferencesActivity.HomepageCustom">自定义</string>
<string-array name="HomepageValues">
<item>@string/PreferencesActivity.HomepageStart</item>
<item>@string/PreferencesActivity.HomepageBlank</item>
<item>@string/PreferencesActivity.HomepageCustom</item>
</string-array>
<!-- 0.3.3 -->
<string name="Constants.SearchUrlGoogle">http://www.google.com/m?hl=en&amp;gl=us&amp;client=ms-null&amp;source=android-browser-key&amp;q=%s</string>
<string name="Constants.SearchUrlWikipedia">http://www.baidu.com/s?wd=%s</string>
<string name="PreferencesActivity.SearchUrlPreferenceTitle">搜索 URL</string>
<string name="PreferencesActivity.SearchUrlPreferenceSummary">自定义搜索URL</string>
<string name="SearchUrlPreferenceActivity.Title">搜索</string>
<string name="SearchUrlPreferenceActivity.Prompt">搜索</string>
<string name="PreferencesActivity.SearchUrlGoogle">谷歌</string>
<string name="PreferencesActivity.SearchUrlWikipedia">百度</string>
<string name="PreferencesActivity.SearchUrlCustom">自定义</string>
<string-array name="SearchUrlValues">
<item>@string/PreferencesActivity.SearchUrlGoogle</item>
<item>@string/PreferencesActivity.SearchUrlWikipedia</item>
<item>@string/PreferencesActivity.SearchUrlCustom</item>
</string-array>
<string name="StartPage.Search">搜索</string>
<string name="StartPage.SearchButton"></string>
<string name="PreferencesActivity.StartPageCustomizationPreferenceTitle">开始页设定</string>
<string name="PreferencesActivity.StartPageCustomizationPreferenceSummary">自定义开始页.</string>
<string name="PreferencesActivity.StartPageEnableSearchPreferenceTitle">是否显示搜索栏</string>
<string name="PreferencesActivity.StartPageEnableSearchPreferenceSummary">如果选中,首页显示搜索栏</string>
<string name="PreferencesActivity.StartPageEnableBookmarksPreferenceTitle">显示最常用书签</string>
<string name="PreferencesActivity.StartPageEnableBookmarksPreferenceSummary">如果选中,首页显示最常用书签</string>
<string name="PreferencesActivity.StartPageEnableHistoryPreferenceTitle">是否显示历史</string>
<string name="PreferencesActivity.StartPageEnableHistoryPreferenceSummary">如果选中,显示浏览历史</string>
<string name="PreferencesActivity.StartPageBookmarksLimitPreferenceTitle">书签个数</string>
<string name="PreferencesActivity.StartPageBookmarksLimitPreferenceSummary">首页中最常用的书签显示</string>
<string name="PreferencesActivity.StartPageHistoryLimitPreferenceTitle">当前历史记录数</string>
<string name="PreferencesActivity.StartPageHistoryLimitPreferenceSummary">在首页中显示的历史记录个数</string>
<string name="PreferencesActivity.UserAgentPreferenceTitle">User agent(UA)</string>
<string name="PreferencesActivity.UserAgentPreferenceSummary">定义UA,网站根据UA显示给适合你浏览器的网页</string>
<string name="UserAgentPreferenceActivity.Title">User Agent</string>
<string name="UserAgentPreferenceActivity.Prompt">User agent</string>
<string name="PreferencesActivity.UserAgentDefault">Android默认</string>
<string name="PreferencesActivity.UserAgentDesktop">桌面级</string>
<string name="PreferencesActivity.UserAgentCustom">自定义</string>
<string-array name="UserAgentValues">
<item>@string/PreferencesActivity.UserAgentDefault</item>
<item>@string/PreferencesActivity.UserAgentDesktop</item>
<item>@string/PreferencesActivity.UserAgentCustom</item>
</string-array>
<string name="BookmarksListActivity.AndroidExportTarget">Android浏览器的书签</string>
<string name="BookmarksListActivity.SDCardExportTarget">SD卡</string>
<string name="BookmarksListActivity.BookmarksExportSDCardDoneTitle">导出完成</string>
<string name="BookmarksListActivity.BookmarksExportSDCardDoneMessage">你的所有书签已经保存在[%s]中</string>
<string name="BookmarksListActivity.BookmarksExportSDCardFailedTitle">导出失败</string>
<string name="BookmarksListActivity.BookmarksExportSDCardFailedMessage">错误信息: %s.</string>
<string name="Main.MenuCopyLinkUrl">复制链接地址</string>
<string name="Main.MenuViewImage">显示图片</string>
<string name="Main.MenuCopyImageUrl">复制图片地址</string>
<string name="Main.MenuDownloadImage">下载图片</string>
<string name="Main.MenuSendEmail">发送邮件</string>
<string name="Main.MenuCopyEmailUrl">复制邮件地址</string>
<string name="Commons.UrlCopyToastMessage">地址已经复制到粘贴板</string>
<string name="DownloadNotification.DownloadStart">下载开始.</string>
<string name="DownloadNotification.DownloadInProgress">正在下载中.</string>
<string name="DownloadNotification.DownloadComplete">下载完成.</string>
<string name="DownloadNotification.DownloadCanceled">下载已经取消.</string>
<string name="BookmarksHistoryActivity.MenuCopyLinkUrl">复制URL</string>
<string name="PreferencesActivity.ClearCacheOnExitPreferenceTitle">清空缓存</string>
<string name="PreferencesActivity.ClearCacheOnExitPreferenceSummary">如果选中,当程序退出的时候清空缓存.</string>
<string name="PreferencesActivity.UIPreferenceTitle">自定义首页</string>
<string name="PreferencesActivity.UIPreferenceSummary">自定义首页界面</string>
<string name="Main.MenuExit">退出</string>
<string name="PreferencesActivity.RestartDialogTitle">需要重启</string>
<string name="PreferencesActivity.RestartDialogMessage">效果改变后需要重新启动程序,是否马上重启</string>
<!-- 0.3.5 -->
<string name="PreferencesActivity.EnablePluginsTitle">可以使用插件</string>
<string name="PreferencesActivity.PluginsAlwaysOff">关闭</string>
<string name="PreferencesActivity.PluginsOnDemand">需要的时候提示</string>
<string name="PreferencesActivity.PluginsAlwaysOn">打开</string>
<string-array name="PluginsEntries">
<item>@string/PreferencesActivity.PluginsAlwaysOff</item>
<item>@string/PreferencesActivity.PluginsOnDemand</item>
<item>@string/PreferencesActivity.PluginsAlwaysOn</item>
</string-array>
<string-array name="PluginsValues">
<item>OFF</item>
<item>ON_DEMAND</item>
<item>ON</item>
</string-array>
<string name="Commons.Continue">继续</string>
<string name="Commons.SslWarning">安全警告</string>
<string name="Commons.SslWarningsHeader">网站的安全证书存在问题</string>
<string name="Commons.SslUntrusted">网站证书没有可信任的发行者</string>
<string name="Commons.SslIDMismatch">站点名和证书不匹配</string>
<string name="Commons.SslExpired">证书已经过期</string>
<string name="Commons.SslNotYetValid">证书没有验证</string>
<string name="MobileViewListActivity.Title">Zirco Browser-通过网关访问的网站列表</string>
<string name="MobileViewListActivity.ListEmpty">列表为空</string>
<string name="MobileViewListActivity.AddMessage">添加一个网站</string>
<string name="MobileViewListActivity.ClearMessage">清空所有站点</string>
<string name="PreferencesActivity.MobileViewCategoryTitle">移动网站列表</string>
<string name="PreferencesActivity.MobileViewListPreferenceTitle">管理网站</string>
<string name="PreferencesActivity.MobileViewListPreferenceSummary">通过google移动平台访问网站,会减少流量和加快速度.</string>
<string name="Commons.Add">增加</string>
<string name="Commons.Clear">清空</string>
<string name="Commons.Delete">删除</string>
<!-- 0.3.6 -->
<string name="PreferencesActivity.VolumeKeysBehaviourPreferenceTitle">声音键</string>
<string name="PreferencesActivity.VolumeKeysBehaviourPreferenceSummary">选择声音键的功能</string>
<string name="PreferencesActivity.VolumeKeysActionDefault">默认不改变</string>
<string name="PreferencesActivity.VolumeKeysActionZoom">放大</string>
<string name="PreferencesActivity.VolumeKeysActionSwitchTabs">选择不同页</string>
<string name="PreferencesActivity.VolumeKeysActionHistory">前进/后退</string>
<string-array name="VolumeKeysActionEntries">
<item>@string/PreferencesActivity.VolumeKeysActionDefault</item>
<item>@string/PreferencesActivity.VolumeKeysActionZoom</item>
<item>@string/PreferencesActivity.VolumeKeysActionSwitchTabs</item>
<item>@string/PreferencesActivity.VolumeKeysActionHistory</item>
</string-array>
<string-array name="VolumeKeysActionValues">
<item>DEFAULT</item>
<item>ZOOM</item>
<item>SWITCH_TABS</item>
<item>HISTORY</item>
</string-array>
<!-- 0.3.7 -->
<string name="Main.MenuSharePage">Share page</string>
<string name="Main.ShareChooserTitle">Share via</string>
<string name="Main.MenuShareLinkUrl">Share link url</string>
<string name="Main.MenuShareImageUrl">Share image url</string>
<string name="Main.MenuShareEmailUrl">Share email address</string>
<!-- 0.3.8 -->
<string name="PreferencesActivity.HideTitleBarPreferenceTitle">Hide title bars</string>
<string name="PreferencesActivity.HideTitleBarPreferenceSummary">If checked, windows title bars will not be
displayed (need application restart).</string>
<string name="PreferencesActivity.UseWideViewPortPreferenceTitle">Use wide viewport</string>
<string name="PreferencesActivity.UseWideViewPortPreferenceSummary">If checked, browser will use a viewport similar to
desktop browsers.</string>
<string name="PreferencesActivity.LoadWithOverviewPreferenceTitle">Load pages with overview</string>
<string name="PreferencesActivity.LoadWithOverviewPreferenceSummary">If checked, pages will load zoomed out to show an
overview of the page.</string>
<string name="PreferencesActivity.SwitchTabsMethodPreferenceTitle">Switch tabs method</string>
<string name="PreferencesActivity.SwitchTabsMethodPreferenceSummary">Define how you can switch between open tabs.</string>
<string name="PreferencesActivity.SwitchTabButtons">Buttons</string>
<string name="PreferencesActivity.SwitchTabFling">Fling</string>
<string name="PreferencesActivity.SwitchTabBoth">Both</string>
<string-array name="SwitchTabsMethodEntries">
<item>@string/PreferencesActivity.SwitchTabButtons</item>
<item>@string/PreferencesActivity.SwitchTabFling</item>
<item>@string/PreferencesActivity.SwitchTabBoth</item>
</string-array>
<string-array name="SwitchTabsMethodValues">
<item>buttons</item>
<item>fling</item>
<item>both</item>
</string-array>
<!-- 0.3.9 -->
<string name="HistoryListActivity.Today">Today</string>
<string name="HistoryListActivity.Yesterday">Yesterday</string>
<string name="HistoryListActivity.LastSevenDays">Last 7 days</string>
<string name="HistoryListActivity.LastMonth">Last month</string>
<string name="HistoryListActivity.Older">Older</string>
<string name="QuickAction.Home">主页</string>
<string name="QuickAction.Menu">菜单</string>
<string name="QuickAction.Share">分享</string>
<string name="QuickAction.SelectText">选择文本</string>
<string name="QuickAction.MobileView">移动网关</string>
<string name="AboutActivity.OtherLicenseText">This application include code from the GreenDroid
project (https://github.com/cyrilmottier/GreenDroid/), licensed under
the Apache license, version 2.</string>
<!-- 0.4.0 -->
<string name="PreferencesActivity.WeavePreferenceTitle">Firefox bookmarks synchronization</string>
<string name="PreferencesActivity.WeavePreferenceSummary">Manage the settings of the bookmarks
synchronization with Firefox Sync.</string>
<string name="PreferencesActivity.UseWeavePreferenceTitle">Use Firefox Sync</string>
<string name="PreferencesActivity.UseWeavePreferenceSummary">If checked, you can retrieve your bookmarks from
Firefox Sync.</string>
<string name="PreferencesActivity.WeaveServerPreferenceTitle">Server</string>
<string name="PreferencesActivity.WeaveServerPreferenceSummary">Set the Firefox Sync server.</string>
<string name="PreferencesActivity.WeaveUsernameTitle">User name</string>
<string name="PreferencesActivity.WeaveUsernameSummary">Enter your Firefox Sync user name.</string>
<string name="PreferencesActivity.WeavePasswordTitle">Password</string>
<string name="PreferencesActivity.WeavePasswordSummary">Enter your Firefox Sync password.</string>
<string name="PreferencesActivity.WeaveKeyTitle">Key</string>
<string name="PreferencesActivity.WeaveKeySummary">Enter your Firefox Sync key.</string>
<string name="WeaveBookmarksListActivity.Title">Firefox bookmarks</string>
<string name="WeaveBookmarksListActivity.MenuSync">Synchronize</string>
<string name="WeaveBookmarksListActivity.MenuClear">Clear</string>
<string name="WeaveBookmarksListActivity.WeaveRootFolder">Places</string>
<string name="WeaveBookmarksListActivity.EmptyText">Firefox bookmarks are not synchronized. Setup your
account informations and do a synchronization.</string>
<string name="WeaveBookmarksListActivity.EmptyFolderText">No bookmarks in this folder.</string>
<string name="WeaveBookmarksListActivity.SetupButton">Setup</string>
<string name="WeaveBookmarksListActivity.SyncButton">Synchronize</string>
<string name="WeaveSync.SyncTitle">Synchronization</string>
<string name="WeaveSync.Connecting">Connecting to server...</string>
<string name="WeaveSync.GettingData">Getting data...</string>
<string name="WeaveSync.ReadingData">Reading data: %1$s / %2$s</string>
<string name="WeaveSync.WrittingData">Writting data...</string>
<string name="Errors.WeaveSyncFailedTitle">Synchronization failed.</string>
<string name="Errors.WeaveSyncFailedMessage">Synchronization failed: %s</string>
<string name="Errors.WeaveAuthFailedMessage">Invalid authentication token. Check your settings.</string>
<string name="WeaveServerPreferenceActivity.Prompt">Server</string>
<string name="WeaveServerPreferenceActivity.Title">Server</string>
<string name="WeaveServerPreferenceActivity.DefaultServer">Firefox Sync server</string>
<string name="WeaveServerPreferenceActivity.CustomServer">Custom server</string>
<string-array name="WeaveServerValues">
<item>@string/WeaveServerPreferenceActivity.DefaultServer</item>
<item>@string/WeaveServerPreferenceActivity.CustomServer</item>
</string-array>
<string name="Main.FileChooserPrompt">Choose file for upload</string>
<string name="Commons.HistoryBookmarksExportSDCardConfirmation">Export history and bookmarks</string>
<string name="Commons.HistoryBookmarksExportSDCardDoneTitle">Export done</string>
<string name="Commons.HistoryBookmarksExportSDCardDoneMessage">Your history and bookmarks have been saved to %s.</string>
<string name="Commons.HistoryBookmarksExportSDCardFailedTitle">Export failed</string>
<string name="Commons.HistoryBookmarksFailedMessage">Error message: %s.</string>
<string name="Commons.HistoryBookmarksImportSDCardFailedTitle">Import failed</string>
<string name="Commons.OperationCanBeLongMessage">This operation can take some times. Do you wish to
proceed?</string>
<string name="PreferencesActivity.ToolsCategoryTitle">Tools</string>
<string name="PreferencesActivity.ToolsHistoryBookmarksPreferenceTitle">Manage bookmarks and history</string>
<string name="PreferencesActivity.ToolsHistoryBookmarksPreferenceSummary">Import, export, clear history and bookmarks.</string>
<string name="PreferencesActivity.ExportHistoryBookmarksPreferenceTitle">Export bookmarks and history</string>
<string name="PreferencesActivity.ExportHistoryBookmarksPreferenceSummary">Export bookmarks and history to the SD card.</string>
<string name="PreferencesActivity.ImportHistoryBookmarksPreferenceTitle">Import bookmarks and history</string>
<string name="PreferencesActivity.ImportHistoryBookmarksPreferenceSummary">Import bookmarks and history from the SD card.</string>
<string name="PreferencesActivity.PrivacyClearHistoryBookmarksTitle">Clear history and/or bookmarks</string>
<string name="PreferencesActivity.SummaryCannotBeUndone">Use with caution, this operation cannot be undone.</string>
<string name="Commons.ClearingHistoryBookmarks">Clearing history and/or bookmarks...</string>
<string name="Commons.ClearHistoryBookmarks">Clear history and/or bookmarks</string>
<string name="Commons.Bookmarks">Bookmarks</string>
<string name="Commons.History">History</string>
<string name="Commons.All">All</string>
<string name="Commons.ExportingHistoryBookmarks">Exporting history and bookmarks...</string>
<string name="Commons.ImportingHistoryBookmarks">Importing history and bookmarks...</string>
<string name="Commons.ImportHistoryBookmarksSource">Choose the import source</string>
<string name="Commons.ClearingBookmarks">正在清空书签中...</string>
<string name="DownloadListActivity.RemoveCompletedDownloads">Remove completed downloads</string>
<string name="QuickAction.Find">Find on page</string>
<string name="SearchDialog.Hint">Find on page</string>
</resources> </resources>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
published under published under
the GPLv3. \n\nIf you have any questions, please visit the GPLv3. \n\nIf you have any questions, please visit
our project page on our project page on
googlecode. \n\n(gaeproxy.googlecode.com) googlecode. \n\n(github.com/clowwindy/shadowsocks)
</string> </string>
<string name="about">About</string> <string name="about">About</string>
<string name="proxy_type">Proxy Type</string> <string name="proxy_type">Proxy Type</string>
......
...@@ -36,11 +36,6 @@ ...@@ -36,11 +36,6 @@
</EditTextPreference> </EditTextPreference>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/fearute_cat"> <PreferenceCategory android:title="@string/fearute_cat">
<CheckBoxPreference
android:key="isAutoConnect"
android:summary="@string/auto_connect_summary"
android:title="@string/auto_connect">
</CheckBoxPreference>
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="true" android:defaultValue="true"
android:key="isGFWList" android:key="isGFWList"
......
package com.github.shadowsocks;
public class Node {
static {
System.loadLibrary("node");
}
public static native void exec(String cmd);
}
...@@ -103,7 +103,6 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -103,7 +103,6 @@ public class Shadowsocks extends PreferenceActivity implements
private static ProgressDialog mProgressDialog = null; private static ProgressDialog mProgressDialog = null;
private CheckBoxPreference isAutoConnectCheck;
private CheckBoxPreference isGlobalProxyCheck; private CheckBoxPreference isGlobalProxyCheck;
private EditTextPreference proxyText; private EditTextPreference proxyText;
private EditTextPreference portText; private EditTextPreference portText;
...@@ -169,7 +168,6 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -169,7 +168,6 @@ public class Shadowsocks extends PreferenceActivity implements
isGFWListCheck.setEnabled(false); isGFWListCheck.setEnabled(false);
isBypassAppsCheck.setEnabled(false); isBypassAppsCheck.setEnabled(false);
isAutoConnectCheck.setEnabled(false);
isGlobalProxyCheck.setEnabled(false); isGlobalProxyCheck.setEnabled(false);
} }
...@@ -185,7 +183,6 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -185,7 +183,6 @@ public class Shadowsocks extends PreferenceActivity implements
isBypassAppsCheck.setEnabled(true); isBypassAppsCheck.setEnabled(true);
} }
isAutoConnectCheck.setEnabled(true);
} }
private boolean isTextEmpty(String s, String msg) { private boolean isTextEmpty(String s, String msg) {
...@@ -213,7 +210,6 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -213,7 +210,6 @@ public class Shadowsocks extends PreferenceActivity implements
proxyedApps = findPreference("proxyedApps"); proxyedApps = findPreference("proxyedApps");
isRunningCheck = (CheckBoxPreference) findPreference("isRunning"); isRunningCheck = (CheckBoxPreference) findPreference("isRunning");
isAutoConnectCheck = (CheckBoxPreference) findPreference("isAutoConnect");
isGlobalProxyCheck = (CheckBoxPreference) findPreference("isGlobalProxy"); isGlobalProxyCheck = (CheckBoxPreference) findPreference("isGlobalProxy");
isGFWListCheck = (CheckBoxPreference) findPreference("isGFWList"); isGFWListCheck = (CheckBoxPreference) findPreference("isGFWList");
isBypassAppsCheck = (CheckBoxPreference) findPreference("isBypassApps"); isBypassAppsCheck = (CheckBoxPreference) findPreference("isBypassApps");
......
...@@ -57,6 +57,7 @@ import android.util.Log; ...@@ -57,6 +57,7 @@ import android.util.Log;
import com.google.analytics.tracking.android.EasyTracker; import com.google.analytics.tracking.android.EasyTracker;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
...@@ -183,10 +184,15 @@ public class ShadowsocksService extends Service { ...@@ -183,10 +184,15 @@ public class ShadowsocksService extends Service {
} }
public void startShadowsocksDaemon() { public void startShadowsocksDaemon() {
final String cmd = String.format("nohup " + BASE new Thread() {
+ "node " + BASE + "local.js -s \"%s\" -p \"%d\" -l \"%d\" -k \"%s\" &", @Override
appHost, remotePort, port, sitekey); public void run() {
Utils.runRootCommand(cmd); final String cmd = String.format(BASE
+ "node " + BASE + "local.js -s \"%s\" -p \"%d\" -l \"%d\" -k \"%s\"",
appHost, remotePort, port, sitekey);
Node.exec(cmd);
}
}.start();
} }
public void startDnsDaemon() { public void startDnsDaemon() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment