inject.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/bin/bash
  2. # made by hazukie
  3. # date: 2024.4.13
  4. # 待注入数据文件路径
  5. HOOK_JS_PATH="./src/hooklog.js"
  6. # Typora 安装路径
  7. TYPORA_INSTALLED_PATH="/usr/share/typora"
  8. # 注入 JS 文件路径
  9. HOOK_JS_WRITE_PATH="$TYPORA_INSTALLED_PATH/node/raven/hook.js"
  10. # 注入 JS 文件的待解压缩包路径
  11. INJECT_JS_DIR_ASAR_PATH="$TYPORA_INSTALLED_PATH/resources/node_modules.asar"
  12. # 注入 JS 文件的文件夹路径
  13. INJECT_JS_DIR_PATH="$TYPORA_INSTALLED_PATH/node"
  14. # 注入JS文件的目的文件路径
  15. INJECT_JS_PATH="$TYPORA_INSTALLED_PATH/node/raven/index.js"
  16. # 判断文件是否存在
  17. file_exist() {
  18. if [ -e "$1" ]; then
  19. return 0
  20. else
  21. return 1
  22. fi
  23. }
  24. #注入数据
  25. write_js2file() {
  26. cat "$HOOK_JS_PATH"|sudo tee "$HOOK_JS_WRITE_PATH"
  27. }
  28. # 给目的文件中追加一行 "require('./hook')",
  29. # 实现在 Typora 运行时调用注入JS文件
  30. append_require2file() {
  31. echo -e "\nrequire('./hook')" |sudo tee -a "$INJECT_JS_PATH"
  32. }
  33. # 打印警告日志
  34. warning() {
  35. echo -e "\033[31m$1\033[0m"
  36. }
  37. # 打印日志
  38. infos() {
  39. echo -e "\033[32m$1\033[0m"
  40. }
  41. infos "Typora 安装路径: $TYPORA_INSTALLED_PATH"
  42. warning "Typora 安装路径是否正确?(y/n)"
  43. read -r check
  44. echo "==>${check:0:1}"
  45. if [[ "${check:0:1}" != "y" ]];then
  46. infos "不正确的话你可以尝试输入新的路径:"
  47. read -r reply
  48. if [[ -z $reply ]];then
  49. warning "您输入为空...脚本已正常退出,请稍候重试!"
  50. exit 0
  51. fi
  52. TYPORA_INSTALLED_PATH="$reply"
  53. fi
  54. infos "已确认当前安装路径为: $TYPORA_INSTALLED_PATH"
  55. if file_exist "$INJECT_JS_DIR_PATH"; then
  56. warning "您可能已经注入过 hook 文件了!\n警告:在当前目录下发现 node 文件夹"
  57. infos "您若不确定之前是否注入过该文件的话,请手动删除当前目录下的 node 文件夹($INJECT_JS_DIR_PATH)!"
  58. exit 0
  59. fi
  60. if [ ! -e "$INJECT_JS_DIR_ASAR_PATH" ]; then
  61. warning "未找到 node_modules.asar!"
  62. warning "请将我(inject.py) 移动到 Typora 安装目录下!"
  63. exit 0
  64. fi
  65. infos "正在解压 node_modues.asar"
  66. sudo node ./asar_modules/node_modules/@electron/asar/bin/asar.js extract $INJECT_JS_DIR_ASAR_PATH $INJECT_JS_DIR_PATH
  67. infos "成功解压至 node 文件夹中!"
  68. infos "正在将 hook.js 添加至 node 文件夹中..."
  69. write_js2file
  70. infos "正在将依赖添加到 node/raven/index.js..."
  71. append_require2file
  72. infos "添加 hook.js 成功!"
  73. infos "依赖添加到 node/raven/index.js 成功!"
  74. infos "正在重新打包 node 文件夹至 node_modules.asar..."
  75. sudo node ./asar_modules/node_modules/@electron/asar/bin/asar.js pack $INJECT_JS_DIR_PATH $INJECT_JS_DIR_ASAR_PATH
  76. infos "打包完成!"
  77. infos "您的序列号为:"
  78. infos "LSGDW2-6M43UN-KHKH2A-D6FDJF"
  79. infos "D9KYN9-MCCL2F-59LFPC-NK2CPX"
  80. warning "如果激活失败,恐怕您还得安装 rust 环境并使用 license-gen/target/debug/license-gen 生成新的序列号"