無意間查到這個 Project purple-line 正在利用反向工程試Line Protocol 好讓沒有官方支持的 Linux 系統也可以用 native application 方式使用 Line,讓我們來試看看效果如何。
前置作業
因為作者的 project 為 pidgin
的 plug-in 所以,假設你已裝 pidgin
了.
依 Project readme 的說明,
The prerequisites are a recent C++ compiler, the Apache Thrift compiler and libraries, and libpurple.
g++, apache thrift compiler, libpurple 要自已先裝好 (否則接下來就會遇到 error 到時你也會知道什麼缺裝)。
依 apache thrift compiler installation requirement 裡就有 g++ 了,所以我們就直接裝 apache thrift 吧。
先用 git clone 一份下來:
$git clone https://github.com/mvirkkunen/purple-line.git purple-line
接下來我是照這個 blog 的方法去裝,因為它裡面有提到:
Important! Some manuals say, that you can run ./bootstrap.sh first, but it’s not necessary. Running this command gave me a lot of trouble, so my suggestion is – don’t do it. If you did – delete whole directory and unpack it one more time.
在安裝的過程中,常需要用到 aptitude
來幫忙解決 dependency error。下面列出幾個我遇到的 errors 供參考:
error 1
make[3]: Entering directory
thrift-0.9.1/test/cpp'
gen-cpp/ThriftTest.cpp’
Makefile:832: warning: overriding commands for target
Makefile:829: warning: ignoring old commands for target `gen-cpp/ThriftTest.cpp’
/bin/bash ../../libtool –tag=CXX –mode=link g++ -Wall -g -O2 -L/usr/lib -o libtestgencpp.la ThriftTest_constants.lo ThriftTest_types.lo ../../lib/cpp/libthrift.la -lssl -lcrypto -lrt -lpthread
libtool: link: ar cru .libs/libtestgencpp.a .libs/ThriftTest_constants.o .libs/ThriftTest_types.o
ar: .libs/ThriftTest_constants.o: No such file or directory
solution:
這個看起來是 Makefile 沒有寫好,所以找不到預期中的檔案就手動copy 過去即可。
thrift-0.9.1/test/cpp$ copy *.o .libs
error 2
building 'thrift.protocol.fastbinary' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/protocol/fastbinary.c -o build/temp.linux-i686-2.7/src/protocol/fastbinary.o
src/protocol/fastbinary.c:20:20: fatal error: Python.h: No such file or directory
compilation terminated.
solution:
沒有裝 Python 。
thrift-0.9.1/test/cpp$ sudo apt-get install python-all python-all-dev python-all-dbg
安裝purple-line
接下來就可以照作者的 readme 去安裝了,但還是會遇到 error.
error 1:
$ make
rm -f .depend
g++ -g -Wall -shared -fPIC -DHAVE_INTTYPES_H -DHAVE_CONFIG_H -DPURPLE_PLUGINS pkg-config --cflags purple thrift
-MM pluginmain.cpp linehttptransport.cpp purpleline.cpp >>.depend
Package purple was not found in the pkg-config search path.
Perhaps you should add the directory containing `purple.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘purple’ found
solution:
沒有裝 purple 。
thrift-0.9.1/test/cpp$ sudo aptitude install libpurple-dev
執行 pidgin
error 1:
作者的 github 中有一條 issue 描述它。
我想,是因為前陣子 Naver Line 為了加強防止帳号被盜用,所以有作修改,而此修改還沒有放進去。
asdf
05-09-2014 Update:
作者已 commit new version 760f738: Implement account verification (PIN code),我驗過可行 : )
雖然沒有图示和群組功能,但至少可以傳訊
也期望有人可以分享成功的 case ^_^”
Conclusion:
Reverse engineering 雖然可以硬幹出功能,但隨著官方改變其 flow or API,就整個又不能用了,唯有期待官方能釋出 API 且 維持其向下相容的特性,才有穩定版可以用吧。
目前我是使用 wine 1.7 + LINE_3.6.0.32 以實現在 Ubuntu 上使用 Naver Line,但也只能算是勉強使用而已。 : (
05-16-2014 Update:
原本用 wine+line 在輸入的時後會有亂碼,後來照著這個教學實作後,現在已經可以正常輸入中文了,但是還是無法丟出貼图。
在修改的時後我有遇到如何叫出 wine 裡 regedit 的問題,後來發現只要在 command line 下打wine regedit
就好了 ….
reference:
Apache Thrift
http://thrift.apache.org/download
http://www.thrift.pl/Thrift-tutorial-installation.html
https://github.com/mvirkkunen/purple-line
http://www.arthurtoday.com/2010/03/apt-aptitude.html#.U2nWZ1SSydU
Written with StackEdit.
沒有留言:
張貼留言