直接用 busybox tar 来解压,然后 hardlink 目前是针对这个 code-server 版本写死的,后续可能会解析 tar tvf 的结果,再动态拷贝硬链接的文件,
tar tvf 'assets/code-server-4.96.2-linux-arm64.tar.gz' | grep '^hr' tar.txt
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node
hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.a link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.a
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/lib/binding/napi-v3/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/watcher.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/obj.target/watcher.node
hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/node-addon-api/nothing.a link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/nothing.a
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/obj.target/kerberos.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/kerberos.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/obj.target/watchdog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/watchdog.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/winregistry.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/obj.target/winregistry.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/obj.target/windows_process_tree.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/windows_process_tree.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/obj.target/spdlog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/spdlog.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/obj.target/windows.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/windows.node
其他更新
多 Activty 切换成 Fragment,这个还没确定会保留,目前是为了兼容 AR 眼镜
升级 Ubuntu 到 22.04,版本号没变,但资源更新了一下
代码精简,优化,移除无用依赖
删除了一些 Git 历史文件,所以同步仓库源的朋友需要重新 clone 一下
1.5.0
Sorry to all users still using Code FA, the maintenance of this project is not active. Code LFA is free and open source, all the contributions are my voluntary dedication of time, and it is hard for me to find a balance in all this, and I will also face some financial issues in the future.
Friends who know me a little may know that I have many projects on hand and am very busy.
The project is renamed to code_lfa
Code LFA (Code Launcher For Android)
As the name suggests, this is just a launcher, not a self-implemented VS Code. In the past, it often caused some misunderstandings, and some even accused me of violating the open-source agreement.
I did not use any code from code-server. Code-server is also included in Code LFA as a compressed package, and Code LFA itself is also open source.
The Readme will be updated later. Some friends always think that installing dependencies is a problem with Code FA, so I am preparing to add some simple instructions.
In fact, most of the problems are because everyone does not know how to use Ubuntu at all, nor do they know how to use apt.
Do not bring the habit of using VS Code on Windows to Code LFA. Do not ask how to install this or that. If you encounter problems, please ask GPT: How to install xxx in the Terminal of VS Code on Ubuntu.
Major Updates
1. Remove termux environment
In previous versions, Code LFA actually included a complete termux environment. Simply put, it had a built-in Linux-like environment identical to termux, which required modifying the package name and recompiling the bootstrap of termux-package. This process is very complicated, and after my energy was dispersed, this part was almost impossible to maintain, and it would increase the apk size by 26M.
After removing this part, the original package size increase only needs 1.6M.
busybox: busybox-ndk, proot-distro requires many commands that Android itself does not have
proot, libtalloc, loader: This still needs to be self-compiled termux-package, but fortunately, there are very few dynamic links, and it does not need to be updated frequently
I also thought about removing bash and proot-distro, but in fact, proot-distro handles many things for us. If it is finally streamlined into a single proot command, there may be some problems with the Ubuntu startup.
2. Upgrade Target SDK to 35
Prepare for future listing on Google Play
3. Upgrade default code-server to 4.96.2
Currently, a developer has submitted a PR to Code LFA to produce Apk through workflow, but I do not have the energy to test it at the moment.
Click the screen on the startup interface to show/hide the terminal
4. Optimize startup interface UI
A long-standing issue, I am currently trying to make it look more aesthetically pleasing and added a mystical progress bar.
Maybe when everyone fails to start, I can judge the problem based on the position of the progress bar and the terminal output.
5. Remove Tar dependency
In the earliest versions, Code LFA could not use the .gz package downloaded directly from code-server. It needed to be decompressed and then compressed again because there were some hardlinks in the compressed package that were not supported on Android.
Later, Dart Tar was used to handle it.
Now this part is removed to minimize the code and dependencies of Code LFA.
Use busybox tar to decompress directly, and the hardlink is currently hardcoded for this code-server version. Later, it may parse the result of tar tvf and then dynamically copy the hardlinked files.
tar tvf 'assets/code-server-4.96.2-linux-arm64.tar.gz' | grep '^hr' tar.txt
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node
hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.a link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.a
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/lib/binding/napi-v3/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/watcher.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/obj.target/watcher.node
hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/node-addon-api/nothing.a link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/nothing.a
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/obj.target/kerberos.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/kerberos.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/obj.target/watchdog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/watchdog.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/winregistry.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/obj.target/winregistry.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/obj.target/windows_process_tree.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/windows_process_tree.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/obj.target/spdlog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/spdlog.node
hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/obj.target/windows.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/windows.node
Other Updates
Multiple Activities switched to Fragment, this has not been confirmed to be retained, currently for compatibility with AR glasses
Upgrade Ubuntu to 22.04, the version number has not changed, but the resources have been updated
Code simplification, optimization, removal of unused dependencies
Deleted some Git history files, so friends who synchronize the repository source need to re-clone