Comparing donglua:master...APKLab:master · donglua/APKLab

Commits on Apr 4, 2026

  1. deps: upgrade to ESLint 10, TypeScript 6, and update all dependencies

    - ESLint 9 → 10 (flat config already in use, no config changes needed)
    - TypeScript 5.9 → 6.0, esbuild 0.26 → 0.28, prettier 3.6 → 3.8
    - typescript-eslint 8.46 → 8.58, @vscode/vsce 3.7.0 → 3.7.1
    - Remove @types/glob (unused), drop --ext from eslint scripts
    - Fix useless assignment flagged by ESLint 10 (no-useless-assignment)
    - Fix Mocha import for TypeScript 6 strict module resolution
    Configuration menu

    Browse the repository at this point in the history

  2. feat: update for apktool 3.0.0 compatibility

    - Remove --use-aapt1 rebuild option (aapt1 dropped in apktool 3.0)
    - Rename --debug → --debuggable for rebuild
    - Replace --only-main-classes with --all-src (main-only is now default)
    - Remove short flag reference from --no-debug-info description
    - Update empty-framework-dir → clean-frameworks command
    Configuration menu

    Browse the repository at this point in the history

  3. refactor: improve code quality across extension

    - Convert .then()/.catch() promise chains to async/await in extension.ts
    - Fix git.ts: replace process.chdir() with cwd option on spawn
      (process.chdir affects the entire extension host, causing subtle bugs)
    - Add cwd support to executeProcess options
    - Fix CallableFunction type to proper () => void | Promise<void>
    Configuration menu

    Browse the repository at this point in the history

  4. refactor: enable esModuleInterop, fix error handling for update check

    - Enable esModuleInterop in tsconfig (cleaner default imports for CJS deps)
    - Clean up import syntax for mocha and extract-zip
    - Move tool download error handling into checkAndInstallTools itself
      so callers don't need try-catch wrappers
    - Remove redundant try-catch blocks from all extension commands
    Configuration menu

    Browse the repository at this point in the history

  5. feat: integrate Smali LSP server into APKLab

    - Add vscode-languageclient dependency for LSP protocol support
    - Bundle smali language grammar (TextMate) and language configuration
      replacing the external LoyieKing.smalise extension dependency
    - Create src/tools/smali-lsp.ts: LSP client that lazily starts when
      a .smali file is opened, auto-detects APKTool project root
    - Java 17+ version check before server launch
    - Server JAR resolved via apklab.smaliLspPath config (populated by
      the existing tool download system when remote config is updated)
    - Add deactivate() to cleanly stop the language server
    - Add skipLibCheck for vscode-languageclient TS6 compat
    
    New settings: apklab.smaliLspPath, apklab.javaPath, smaliLsp.trace.server
    Configuration menu

    Browse the repository at this point in the history

  6. Configuration menu

    Browse the repository at this point in the history

  7. refactor: extract common getJavaPath utility

    - Create src/utils/java.ts with getJavaPath() reading apklab.javaPath config
    - Update apktool.ts to use getJavaPath() instead of hardcoded 'java'
    - Update uber-apk-signer.ts to use getJavaPath()
    Configuration menu

    Browse the repository at this point in the history

  8. Configuration menu

    Browse the repository at this point in the history

  9. Configuration menu

    Browse the repository at this point in the history