From 4b2a61041847cf3ca96fb2f5a4004fc32c841233 Mon Sep 17 00:00:00 2001 From: felixh Date: Thu, 5 Nov 2026 17:11:36 +1030 Subject: [PATCH 1/2] Add English translation of README Co-Authored-By: Claude Opus 5.5 --- READMEENGLISH.md | 333 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 READMEENGLISH.md diff --git a/READMEENGLISH.md b/READMEENGLISH.md new file mode 100644 index 0000000..a09f232 --- /dev/null +++ b/READMEENGLISH.md @@ -0,0 +1,333 @@ +# AutoView8 - Automated Build System for the V8 Decompiler + +A fully automated build system for the V8 disassembler (v8dasm). It compiles for multiple platforms and multiple V8 versions, and publishes the results to GitHub Releases automatically. + +## πŸš€ Quick Start + +### Automated Build Workflow (Recommended) + +1. **Clone the repository** + + ```bash + git clone + cd AutoView8 + ``` + +2. **Configure the V8 versions to build** + + Edit [`configs/v8-versions.json`](configs/v8-versions.json): + + ```json + { + "versions": [ + { + "v8_version": "10.2.154.26", + "node_version": "v18.x", + "build_args": "v8_enable_pointer_compression=false" + } + ] + } + ``` + +3. **Commit and push** + + ```bash + git add configs/v8-versions.json + git commit -m "Update V8 versions to build" + git push origin main + ``` + +4. **Done automatically!** πŸŽ‰ + - GitHub Actions detects the configuration change + - Builds all platforms in parallel (Linux, macOS Intel, macOS ARM, Windows) + - Creates a GitHub Release automatically + - Uploads the binaries for every platform + +5. **Download the build artifacts** + - Go to the repository's [Releases page](../../releases) + - Download the archive for your platform and version + - Extract it and it's ready to use + +--- + +## πŸ“ Project Structure + +``` +AutoView8/ +β”œβ”€β”€ .github/workflows/ +β”‚ └── build-v8dasm.yml # GitHub Actions workflow +β”œβ”€β”€ configs/ +β”‚ └── v8-versions.json # Version config file (edit this!) +β”œβ”€β”€ scripts/v8dasm-builders/ +β”‚ β”œβ”€β”€ build-linux.sh # Linux build script +β”‚ β”œβ”€β”€ build-macos-intel.sh # macOS Intel build script +β”‚ β”œβ”€β”€ build-macos-arm.sh # macOS ARM build script +β”‚ └── build-windows.cmd # Windows build script +β”œβ”€β”€ view8-jsc-decode/ +β”‚ └── Disassembler/ +β”‚ β”œβ”€β”€ v8dasm.cpp # Disassembler source code +β”‚ └── v8.patch # V8 patch +β”œβ”€β”€ view8.py # View8 decompiler main program +β”œβ”€β”€ Parser/ # V8 cache parser +β”œβ”€β”€ Translate/ # Bytecode translator +β”œβ”€β”€ Simplify/ # Code simplifier +β”œβ”€β”€ BUILD.md # Local build guide +└── README.md # This file (Chinese) +``` + +--- + +## 🎯 Supported Platforms and Versions + +### Build Platforms + +- βœ… Linux x64 +- βœ… macOS Intel (x86_64) +- βœ… macOS Apple Silicon (ARM64) +- βœ… Windows x64 + +### V8 Versions Supported by Default + +- **9.4.146.24** - Node.js v16.x +- **10.2.154.26** - Node.js v18.x +- **11.3.244.8** - Node.js v20.x + +--- + +## πŸ“ Usage + +### Option 1: Use the Automatically Built Binaries (Recommended) + +1. Download the matching v8dasm version from [Releases](../../releases) +2. Extract and run: + +```bash +# Disassemble a JSC file +./v8dasm-10.2.154.26 input.jsc > output.txt + +# Full decompilation together with View8 +python view8.py input.jsc output.js --path ./v8dasm-10.2.154.26 +``` + +### Option 2: Build Locally (Advanced Users) + +See the [Local Build Guide](BUILD.md) to build locally. + +--- + +## βš™οΈ Adding a New V8 Version + +Edit [`configs/v8-versions.json`](configs/v8-versions.json) and add the new version: + +```json +{ + "versions": [ + { + "v8_version": "12.4.254.14", + "node_version": "v22.x", + "build_args": "v8_enable_pointer_compression=false" + } + ] +} +``` + +**Committing the change triggers a build automatically!** + +### How Do I Find the V8 Version Number? + +1. **From your Node.js version** + + ```bash + node -p process.versions.v8 + ``` + +2. **Look it up online** + - [Node.js Releases](https://nodejs.org/en/download/releases/) + - [V8 version list](https://chromium.googlesource.com/v8/v8.git/+refs) + +3. **Electron versions** + - [Electron Releases](https://www.electronjs.org/releases) + +--- + +## πŸ”§ Workflow Triggers + +GitHub Actions runs automatically in the following cases: + +1. **Push to the main branch** that changes any of these files: + - `configs/v8-versions.json` ⭐ **most common** + - `view8-jsc-decode/Disassembler/**` + - `scripts/v8dasm-builders/**` + - `.github/workflows/build-v8dasm.yml` + +2. **Pull Request** to the main branch + +3. **Manual trigger** + - Go to the [Actions page](../../actions) + - Select the "Build V8 Disassembler" workflow + - Click "Run workflow" + - Optionally specify a single version to build + +--- + +## πŸ’‘ Core Features + +### βœ… Fully Automated + +- No manual steps β€” just edit the config file +- Detects version changes automatically +- Creates Releases automatically + +### βœ… Parallel Multi-Platform Builds + +- 4 platforms build at the same time +- About 60–90 minutes to finish everything + +### βœ… Smart Caching + +- Depot Tools cache +- V8 source cache +- Incremental builds save 50–70% of build time + +### βœ… Version-Based Naming + +- Build artifacts are named after the version number automatically +- For example: `v8dasm-10.2.154.26` +- Makes managing multiple versions easy + +### βœ… Local + Cloud Modes + +- Supports automated builds on GitHub Actions +- Supports manual local builds +- Scripts detect the runtime environment automatically + +--- + +## πŸ“Š Checking Build Status + +### On GitHub + +1. Go to the repository's [Actions tab](../../actions) +2. Open the latest workflow run +3. Click into each platform to see detailed logs + +### Workflow Steps + +``` +Prepare build matrix + ↓ +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Linux x64 β”‚ macOS Intel β”‚ macOS ARM64 β”‚ Windows x64 β”‚ +β”‚ (ubuntu-20.04) β”‚ (macos-12) β”‚ (macos-14) β”‚ (windows-2022) β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + ↓ + Create GitHub Release + ↓ + Upload ZIP archives for all platforms +``` + +--- + +## πŸ› οΈ Advanced Configuration + +### Custom Build Arguments + +Change `build_args` in `configs/v8-versions.json`: + +```json +{ + "v8_version": "10.8.168.25", + "node_version": "Electron v22.x", + "build_args": "v8_enable_pointer_compression=true v8_enable_sandbox=true" +} +``` + +**Common arguments:** + +- `v8_enable_pointer_compression=false` - Disable pointer compression (Node.js) +- `v8_enable_pointer_compression=true` - Enable pointer compression (Electron) +- `v8_enable_sandbox=true` - Enable the sandbox (Electron) + +### Build Only a Specific Version + +When triggering the workflow manually, enter a version number: + +1. Go to the [Actions page](../../actions) +2. Select "Build V8 Disassembler" +3. Click "Run workflow" +4. Enter the V8 version number (e.g. `10.2.154.26`) +5. Click "Run workflow" + +--- + +## πŸ“– Decompiling JSC Files with View8 + +```bash +# Basic usage +python view8.py input.jsc output.js + +# Specify the v8dasm path +python view8.py input.jsc output.js --path ./v8dasm-10.2.154.26 + +# Show help +python view8.py --help +``` + +For full documentation, see the [View8 README](README-View8.md). + +--- + +## πŸ› Troubleshooting + +### GitHub Actions Build Failed? + +1. **Check the logs** + - Open the Actions page to see the detailed logs + - Focus on the red error messages + +2. **Patch failed to apply** + - The V8 version may be incompatible + - See [Patch Compatibility](#patch-compatibility) + +3. **Out of memory** + - GitHub Actions has a 7 GB memory limit + - Consider building locally + +### Local Build Problems? + +See the "FAQ" section of the [Local Build Guide](BUILD.md). + +--- + +## πŸ”— Related Links + +- [GitHub Actions workflow](.github/workflows/build-v8dasm.yml) +- [Version config file](configs/v8-versions.json) +- [Local Build Guide](BUILD.md) +- [View8 README](README-View8.md) +- [Official V8 documentation](https://v8.dev/docs) + +--- + +## πŸ“„ License + +This project is licensed under the MIT License. See the LICENSE file for details. + +--- + +## 🀝 Contributing + +Issues and Pull Requests are welcome! + +### Contribution Guide + +1. Fork this repository +2. Create a feature branch (`git checkout -b feature/AmazingFeature`) +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +--- + +**Last updated**: 2026-01-30 +**Version**: 1.0.0 From 9c0e30e43d2c02e7fd31909a4a095d5f1fcda662 Mon Sep 17 00:00:00 2001 From: felixh Date: Thu, 5 Nov 2026 17:16:23 +1030 Subject: [PATCH 2/2] Link English README from README.md Co-Authored-By: Claude Opus 5.5 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d27ff83..fe791de 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ δΈ€δΈͺε…¨θ‡ͺεŠ¨ηš„ V8 反汇编器 (v8dasm) ζž„ε»Ίη³»η»ŸοΌŒζ”―ζŒε€šεΉ³ε°γ€ε€šη‰ˆζœ¬ηΌ–θ―‘οΌŒεΉΆθ‡ͺεŠ¨ε‘εΈƒεˆ° GitHub Releases。 +[English instructions](READMEENGLISH.md) + ## πŸš€ εΏ«ι€ŸεΌ€ε§‹ ### θ‡ͺεŠ¨εŒ–ζž„ε»Ίζ΅η¨‹οΌˆζŽ¨θοΌ‰