shadowsocks / shadowsocks-android

A shadowsocks client for Android
Other
35.12k stars 11.58k forks source link

Need shadowsocks for Android wear version #664

Closed YoleYu closed 8 years ago

YoleYu commented 8 years ago

目前的可穿戴式设备大多都是通过蓝牙连接手机,然后再通过手机网络通讯。

但是现在一些新的设备,比如LG Watch Urbane2,可以直接插SIM卡,使用蜂窝网络通讯。前些天,苹果也发布一些标准,要求IWatch可以脱离手机工作。所以可以直接插卡上网的穿戴式设备应该是一个趋势。

不知道现在的shadowsocks-android版本是否可以比较容易的移植到Android wear上,如果可以移植,哪在穿戴式设备上的上网体验必然更好了。

Mygod commented 8 years ago

Yes, I'm already considering supporting Android wear.

By the way, do you need this feature because you do have an Android wear device or because you just thought of it?

YoleYu commented 8 years ago

@Mygod I just got an Android wear and thought of it :)

athanoslee commented 8 years ago

Now that Google has announced android wear 2.0. A standalone shadowsocks client for android wear seems more urgent.

YoleYu commented 8 years ago

I also saw that in the midnight. I have the same watch which demoed in the meeting.

Mygod commented 8 years ago

Well if anyone can buy me one of those Android Wear 2.0s I'll surely be glad to support Android Wear. :stuck_out_tongue:

madeye commented 8 years ago

Here it is: ⌚

Mygod commented 8 years ago
05-23 15:35:42.329 1286-1298/system_process W/ActivityManager: Permission Denial: starting Intent { cmp=com.google.android.wearable.frameworkpackagestubs/.Stubs$VpnStub } from ProcessRecord{821fa5d 25206:com.github.shadowsocks/u0a26} (pid=25206, uid=10026) not exported from uid 10018
05-23 15:35:42.330 25206-25687/com.github.shadowsocks W/System.err: java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.google.android.wearable.frameworkpackagestubs/.Stubs$VpnStub } from ProcessRecord{821fa5d 25206:com.github.shadowsocks/u0a26} (pid=25206, uid=10026) not exported from uid 10018
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.os.Parcel.readException(Parcel.java:1620)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.os.Parcel.readException(Parcel.java:1573)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2658)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1507)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:3930)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:3890)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at com.github.shadowsocks.Shadowsocks$$anonfun$prepareStartService$1.apply(Shadowsocks.scala:102)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
05-23 15:35:42.331 25206-25687/com.github.shadowsocks W/System.err:     at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
05-23 15:35:42.345 25206-25206/com.github.shadowsocks E/Shadowsocks: Failed to start VpnService

And there you go: VPN is not supported on Android wear (tested on API level 23). NAT might work but sorry I don't feel like rooting my emulator. I might consider testing NAT mode if someone could send me a REAL device (instead of an emoji). I have submitted another issue at Android's issue tracker and we'll have to wait until something changes.

Clone the commit above to test it yourself. Build instructions:

sbt nativeBuild core/clean core/android:packageAar mobile/clean mobile/android:packageRelease wear/clean wear/android:packageRelease
Mygod commented 8 years ago

screenshot_20160523-160144

By the way, here's a screenshot of the wear version of the broken app. Enjoy.