All Articles

Biến android phone thành Web-server

Android

1. Chuẩn bị

  1. Android phone (đã rooted hoặc chưa cũng được)
  2. Laptop/PC
  3. Cả 2 thiết bị trên cùng kết nối chung mạng wifi
  4. Và một chút kiến thức về Linux, git

Note: Trong bài viết mình deploy web server chạy NodeJS, đối với nền tảng các bạn chỉ cần setup trên android tới bước 5 là đủ

2. Cài ứng dụng Termux trên Android

link Termux

Giới thiệu sơ qua về Termux app, thì đây là ứng dụng tương tự như Terminal trên linux, nhưng cái hay là chúng hỗ trợ môi trường Linux thông qua trình quản lí packages đi kèm. Các bạn có thể tham khảo về termux trên Github (open-source)

Xem thêm:

Trong bài này mình thực hiện test trên con xiaomi redmi note 4 (mido / rooted), chưa root vẫn được nhé, nhưng cực cái là các bạn ko duyệt file trên đt được. Còn source code thì được dev trên laptop chạy ubuntu và deploy thông qua github. Let’s go

Note: Termux hiện tại chỉ hoạt động với android 5 trở lên! Từ ngày 1.1.2020 sẽ ko hỗ trợ cho android 5 và 6, các phiên bản cũ hơn của Termux vẫn làm việc tốt, tải tại đây

3. Setup Authen cho SSH

Install Open SSH

Đầu tiên chúng ta phải setup ssh cho nó cái đã. Chạy lệnh sau

apt update && apt upgrade -y apt install openssh

Setup SSH

Lấy username hệ thống. Có 3 cách là

  1. $ pwd print working directory
  2. $ echo $HOME In biến HOME ra
  3. $ whoami WHO AM I?

=> username của mình là u0_a173

  1. Set password cho account. Như linux thôi

$ passwd <username> Ví dụ: $ passwd u0_a173 Nhập pass 2 lần nhá. $ sshd để start ssh server

4. Connect SSH đến Android phone

Test thử xem sao? Mở terminal trên Ubuntu lên, trên windows có thể sử dụng powershell nha!

$ ssh -p 8022 u0_a173@192.168.1.102

Giải thích chút xíu về command trên, -p 8022 là port ssh trên Android phone, nghe hơi sai sai, thông thường thì ssh start ở port 21/22, nhưng trên Android phone thì Termux map nó ở port 8022, u0_a173 là username lúc nãy, 192.168.1.102 là ip trong mạng LAN (wifi), muốn biết thì vào settings >> WIFI bấm vào wifi đang connecting thì lấy được, hoặc vào trang setup của Router wifi >> DHCP Lease Information là ra.

Từ lúc này mình setup ko cần động đến đt nữa, mọi thao tác sẽ qua ssh trên Ubuntu terminal cho tiện, sau bài này mình sẽ hướng dẫn connect đến android phone thông qua Internet/3G.4G đều được, public server web…

5. Setup môi trường trên Android phone

Update lần nữa Android phone

$ apt update && apt upgrade

Một số hướng dẫn thao tác với Termux

Working with packages:

  • Search packages: pkg search [query]
  • Install a package: pkg install [packages]
  • Upgrade packages: pkg upgrade

Trong bài này mình sẽ setup node js với express framework

$ apt install nodejs

Kiểm tra version hiện tại của Node và NPM

$ node -v && npm -v

Tạo 1 trang test với express trên laptop nha, sau đó deploy qua github.

Note: trong bài viết này mình coi như là bạn đã thông thạo Git & Github mình ko giải thích gì thêm!

Thao tác tại PC ko phải với Android phone qua ssh

$ sudo apt-get update && sudo apt-get upgrade -y $ sudo apt-get install nodejs $ npm install express $ npm install express-generator $ express --ejs MAPMA $ cd MAPMA $ git init $ git add . $ git commit -m "first commit" $ git remote add origin https://github.com/<username>/<your-repo>.git $ git push -u origin master

Các commands bên trên là toàn bộ thiết lập mới cho Ubuntu dành cho bạn nào chưa biết

Setup git cho Android phone

$ apt install git

5. Deploy

Clone repo phía trên từ github về

$ git clone https://github.com/<username>/<your-repo>.git $ cd <your-repo> $ npm install $ npm start

Hoặc bạn có thể clone Project demo của mình

$ git clone https://github.com/tranphuquy19/MAPMA.git $ cd MAPMA $ npm install $ npm start

Note: Các bạn có thể setup Express chạy ngầm (deamon) thông qua ForeverJS hoặc PM2. Cú pháp

  1. Forever JS

Install

$ npm install -g forever

Start

$ forever start ./bin/www

Stop

$ forever stopall
  1. PM2

Install

$ npm install -g pm2

Start

$ pm2 start ./bin/www

Stop

$ pm2 stop all

7. Enjoy!!!

demo

demo

demo