惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
GbyAI
GbyAI
F
Fortinet All Blogs
The Cloudflare Blog
爱范儿
爱范儿
IT之家
IT之家
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
C
Cisco Blogs
Latest news
Latest news
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
Stack Overflow Blog
Stack Overflow Blog
K
Kaspersky official blog
Spread Privacy
Spread Privacy
B
Blog
L
Lohrmann on Cybersecurity
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
P
Privacy International News Feed
T
Tor Project blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
小众软件
小众软件
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recorded Future
Recorded Future
S
Secure Thoughts
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
Last Week in AI
Last Week in AI
W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
宝玉的分享
宝玉的分享
D
Docker
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网

AUR Newest Packages

AUR (en) - xcute AUR (en) - wallrift AUR (en) - smolvm-git AUR (en) - smolvm-bin AUR (en) - smolvm AUR (en) - chess-cat-git AUR (en) - uac-launch-control-bin AUR (en) - android-cli AUR (en) - rs-top AUR (en) - rudo-bin AUR (en) - marmalade-bin AUR (en) - clawx-appimage AUR (en) - echomusic-appimage AUR (en) - vermouth AUR (en) - mautrix-telegram-bin AUR (en) - ketesa AUR (en) - clawd-on-desk-bin AUR (en) - rebased-bin AUR (en) - oxideterm-bin AUR (en) - shed-sh AUR (en) - quillscribe AUR (en) - haus-bin AUR (en) - stably-orca-bin AUR (en) - reflection AUR (en) - emerald-legacy-launcher-git AUR (en) - kwim AUR (en) - omarchy-emacs AUR (en) - pentest-ghostwriter AUR (en) - papagaia AUR (en) - outport-bin AUR (en) - carton-appimage AUR (en) - veila-git AUR (en) - veila-bin AUR (en) - vigil-baseline AUR (en) - byedroid AUR (en) - rpi-imager-git-non-root AUR (en) - python-fastapi-sso AUR (en) - zeed-bin AUR (en) - dwl-git-azerty AUR (en) - libspatialaudio-git AUR (en) - libspatialaudio AUR (en) - opennow AUR (en) - rotki AUR (en) - kapi-bin AUR (en) - classfi-git AUR (en) - giff-git AUR (en) - budget-tracker-bin AUR (en) - budget-tracker AUR (en) - tasks-bin AUR (en) - ruri-git AUR (en) - gitmun-bin AUR (en) - python-cozempic AUR (en) - vim-prosession AUR (en) - paintfe-bin AUR (en) - paintfe AUR (en) - drop-bin AUR (en) - tritium-launcher-bin AUR (en) - solidc-git AUR (en) - paseo-desktop-bin AUR (en) - dota2-minify-bin AUR (en) - yt-dvr AUR (en) - enneagram AUR (en) - excalidraw-desktop-bin AUR (en) - binaryobjectscanner-bin AUR (en) - openring-rs AUR (en) - openring-rs-bin AUR (en) - brave-origin-beta-bin AUR (en) - whisper.cpp-cuda-bin AUR (en) - libggml-cuda-bin AUR (en) - revdiff AUR (en) - tdesktop-nolimit AUR (en) - cert-checker AUR (en) - yaak-cli AUR (en) - yaak-cli-bin AUR (en) - deez-notes-bin AUR (en) - goosestation-libretro AUR (en) - whispers-cuda-bin AUR (en) - kei AUR (en) - foxguard AUR (en) - hyprlogin-git AUR (en) - kebiki AUR (en) - runex AUR (en) - ikuai-cli AUR (en) - whispers-bin AUR (en) - pipeweaver-app AUR (en) - pipeweaver AUR (en) - agentop-bin AUR (en) - cosmic-ext-connected-git AUR (en) - kwin-dual-mode AUR (en) - skwd-daemon AUR (en) - ter-music-cn AUR (en) - elio-bin AUR (en) - keyboard-chattering-fix-git AUR (en) - qtkeychain-qt5 AUR (en) - gesturecontrol AUR (en) - sharey AUR (en) - ouijit-bin AUR (en) - usque-bin AUR (en) - twig-bin AUR (en) - ascendara-bin
AUR (en) - onekey-wallet-bin
2026-06-15 · via AUR Newest Packages

@olwig Thanks for your feedback , fixed it .

makepkg leads to this error:

==> ERROR: Integrity checks (sha256) differ in size from the source array.

You missed to remove the first entry of the sha256sums array:

97ff33f11c405f38a6f53311eb2bac193d9de4ed84fdbd52bbb4eddec63744d6 safe_extract_asar.js

@colazcy Thanks for your feedback, fixed it.@homocomputeris Can you try again?

It does not launch:

Error launching app
Unable to find Electron app at /usr/lib/onekey-wallet/app.asar

Cannot find module '/usr/lib/onekey-wallet/app.asar'

and, when reinstalling, it outputs:

Downloading PKGBUILDs...
 PKGBUILDs up to date
 nothing new to review
fetching devel info...
==> Making package: onekey-wallet-bin 6.1.0-2 (Вс 29 мар 2026 22:59:13)
==> Retrieving sources...
  -> Found safe_extract_asar.js
  -> Found onekey-wallet.sh
  -> Found onekey-wallet-6.1.0-x86_64.AppImage
==> Validating source files with sha256sums...
    safe_extract_asar.js ... Passed
    onekey-wallet.sh ... Passed
==> Validating source_x86_64 files with sha256sums...
    onekey-wallet-6.1.0-x86_64.AppImage ... Passed
==> Making package: onekey-wallet-bin 6.1.0-2 (Вс 29 мар 2026 22:59:14)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found safe_extract_asar.js
  -> Found onekey-wallet.sh
  -> Found onekey-wallet-6.1.0-x86_64.AppImage
==> Validating source files with sha256sums...
    safe_extract_asar.js ... Passed
    onekey-wallet.sh ... Passed
==> Validating source_x86_64 files with sha256sums...
    onekey-wallet-6.1.0-x86_64.AppImage ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
==> Starting prepare()...
The electron version is: 39
📂 创建输出目录:/home/user/.cache/paru/clone/onekey-wallet-bin/src/app.asar.unpacked
🔍 读取asar包文件列表...
📄 检测到 3475 个文件,开始过滤解压...

@zxp19821005

Thanks for your great work on this package! Unfortunately, this version of "safe_extract_asar.js" still does not work because the CLI arguments are wrong. It uses the "-o" flag, but the correct syntax is "asar extract-file|ef <archive> <filename> ".

Additionally, this way of extracting files from asar archives is quite inefficient. I suggest using the native asar module for better performance. Here's an updated version of "safe_extract_asar.js".

NOTE: This script is generated by Google Gemini, and reviewed by Claude and ChatGPT. I've reviewed and tested it manually (and it works well on my machine), but I would appreciate your review since I’m not very familiar with JavaScript and Node.js.

const fs = require('fs');
const path = require('path');

const SRC_DIR = process.env.SRC_DIR || process.cwd();
const ASAR_FILE_PATH = path.join(SRC_DIR, 'squashfs-root/resources/app.asar');
const OUTPUT_DIR = path.join(SRC_DIR, 'app.asar.unpacked');

// Exclude non-Linux prebuilds
const EXCLUDE_PATTERNS = [
  /\/prebuilds\/android-/,
  /\/prebuilds\/darwin-/,
  /\/prebuilds\/win32-/
];

async function nativeExtract() {
  try {
    // Clean up previous extraction to avoid ENOTDIR conflicts from cached builds
    if (fs.existsSync(OUTPUT_DIR)) {
      fs.rmSync(OUTPUT_DIR, { recursive: true, force: true });
    }
    fs.mkdirSync(OUTPUT_DIR, { recursive: true });

    console.log('=> Loading system-level @electron/asar module...');
    let asar;
    try {
      const asarModule = await import('file:///usr/lib/node_modules/@electron/asar/lib/asar.js');
      asar = asarModule.default || asarModule;
    } catch (e) {
      console.error(`Error: Failed to load asar module. ${e.message}`);
      process.exit(1);
    }

    console.log('=> Reading flat file index...');
    const rawFileList = asar.listPackage(ASAR_FILE_PATH);

    // Normalize paths and filter out empty ones
    const fileList = rawFileList
      .map(f => f.startsWith('/') ? f.substring(1) : f)
      .filter(f => f && f !== '.');

    // Build a set of all directories to prevent file/directory name collisions
    const dirSet = new Set();
    for (const file of fileList) {
      let currentDir = path.dirname(file);
      while (currentDir !== '.' && currentDir !== '') {
        dirSet.add(currentDir);
        currentDir = path.dirname(currentDir);
      }
    }

    console.log('=> Extracting files to memory and writing to disk...');
    let extractedCount = 0;
    let skippedCount = 0;

    for (const file of fileList) {
      // Skip directories
      if (dirSet.has(file)) {
        continue;
      }

      // Skip cross-platform prebuilds
      if (EXCLUDE_PATTERNS.some(regex => regex.test(file))) {
        skippedCount++;
        continue;
      }

      try {
        // extractFile throws if the file is a directory or physically missing
        const buffer = asar.extractFile(ASAR_FILE_PATH, file);

        const destPath = path.join(OUTPUT_DIR, file);
        const destDir = path.dirname(destPath);

        if (!fs.existsSync(destDir)) {
          fs.mkdirSync(destDir, { recursive: true });
        }

        fs.writeFileSync(destPath, buffer);
        extractedCount++;
      } catch (err) {
        // Silently ignore directories and ghost files
        skippedCount++;
      }
    }

    if (extractedCount === 0) {
      console.error('Error: No files were extracted. Check safe_extract_asar.js!');
      process.exit(1);
    }

    console.log('=> Extraction complete.');
    console.log(`   Successfully extracted: ${extractedCount} files`);
    console.log(`   Skipped (dirs/missing/ignored): ${skippedCount} items`);

  } catch (err) {
    console.error(`Fatal error during extraction: ${err.message}`);
    process.exit(1);
  }
}

nativeExtract();

@colazcy Thanks for your feedback, fixed it.

The new script safe_extract_asar.js has hardcoded absolute paths /home/zxp-endeavouros/... on lines 6 and 7. This causes installation to fail for all other users.