2014年5月7日 星期三

Install native client application for Naver Line in Linux.

無意間查到這個 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'
Makefile:832: warning: overriding commands for target
gen-cpp/ThriftTest.cpp’
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:

enter image description here
作者的 github 中有一條 issue 描述它。
我想,是因為前陣子 Naver Line 為了加強防止帳号被盜用,所以有作修改,而此修改還沒有放進去。
asdf


05-09-2014 Update:
作者已 commit new version 760f738: Implement account verification (PIN code),我驗過可行 : )

enter image description here

雖然沒有图示和群組功能,但至少可以傳訊
也期望有人可以分享成功的 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

http://ahhafree.blogspot.tw/2012/12/ubuntu-1204-line.html?showComment=1399452427704#c5234603328451559176

Written with StackEdit.

沒有留言:

張貼留言