Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Aira

Aira

中文 | English

在华为应用市场下载 Aira

License: GPL-3.0 Telegram

Aira 是开源的鸿蒙 NEXT 浏览器,源码按 GPL-3.0 发布。同一仓库里还有桌面同步扩展,以及用于自建同步的单所有者服务。

浏览、书签、历史、下载、过滤、脚本和主页都可以在本机完成。Community 不依赖 Aira 官方云或华为账号;要跨设备,用你自己的 WebDAV 或 Personal Server。

界面

真实界面截图:

手机界面

PC 界面

功能

浏览

  • 鸿蒙 NEXT 原生客户端,支持手机、平板和 2in1。
  • 多标签、启动恢复、后台标签页资源管理,以及按未使用时长自动关闭标签。
  • 可拖拽排序的底部工具栏,外观、主题、应用图标和顶部沉浸可调。
  • 自定义主页,可自己写页面;也支持把网站安装成桌面应用。
  • 大屏有键盘快捷键和双栏设置。

隐私与安全

  • 隐私模式与普通浏览数据分开保存,可要求进入时验证身份,并模糊私密标签预览。
  • 广告与网页内容过滤,支持自定义规则和手动隐藏元素。
  • 防跟踪、Cookie 策略、站点权限、外部应用跳转控制和安全 DNS。
  • 本机密码保险箱与自动填充。
  • 本地备份导入导出。Community 默认不连官方云,也不会把浏览数据交到 Aira 服务器。

网页能力

  • 用户脚本。
  • 网页翻译,可配置翻译服务。
  • 下载管理:保存位置、分片、失败恢复、私密下载。
  • 阅读模式和离线页面。
  • 小说模式与小说书架。
  • 网页视频接管。
  • 自定义网页标识(User-Agent)。
  • 应用内代理。
  • 搜索引擎可切换,地址栏用本地建议。

同步与跨端

Community 可用:

  • 用户自选 WebDAV:书签、主页收藏、小说书架和常用设置。
  • 自建 Personal Server:书签、历史、主页收藏、小说书架、常用设置,以及页面推送和跨端标签。
  • 桌面扩展 Aira-sync,把 Chromium / Firefox 接到同一套 Personal Server。

Official 商店包另外接入华为账号、华为云空间、Aira 云和 IAP。这些不在 Community 默认构建里。

下载

Community 未签名 HAP 发在 GitHub Releases。包名是 org.aira.browser,需要你自己用对应签名材料签名后再侧载。这不是华为应用市场里的 Official 商店包。

仓库约定

  • 浏览器和扩展从同一提交打出 Community 或 Official 两种发行版。
  • Community 构建不需要 Aira 生产凭证,也不依赖官方托管服务。
  • Personal Server 是单所有者、配对设备服务。没有注册、密码账号、组织、角色、会员、计费、推荐或华为登录。
  • 本地数据、WebDAV 和 Personal Server 不需要 Aira 会员。
  • Aira 生产服务、Admin、华为项目配置、签名材料和部署密钥不在本仓库。

组件

组件位置开发职责
鸿蒙客户端AiraBrowser/ArkTS/ArkUI 浏览器壳、本地存储、Provider 接入
桌面扩展extensions/aira-sync/Chromium/Firefox 界面、后台运行时、跨端客户端
Personal Serverservices/personal-server/Node.js/Docker 同步、配对、页面推送、标签在线 API
共享资源resources/ 与 docs/图标、声明、架构决策、协议文档

架构速览

客户端保存本地浏览状态,并在每个同步域上选择一个远程 Provider。公开可用的是 WebDAV 和 Personal Server;Official 构建还可以使用 Aira 云和华为云空间。

Personal Server 提供发现、一次性配对、书签、历史、个性化、小说书架、页面推送和跨端标签接口。它使用按设备签发的 bearer 凭证,只存储凭证哈希,没有用户账号系统。

改协议之前先读这些约定:

开发环境

范围要求
仓库脚本.node-version / .nvmrc 中的 Node.js 18.20.8
Aira-syncNode.js 24.x 和 npm(见 extensions/aira-sync/.node-version)
Personal ServerNode.js 20 或更新,或带 Compose 的 Docker
鸿蒙客户端DevEco Studio、HarmonyOS NEXT SDK/API 23 或更新,以及 ohpm

克隆后默认在仓库根目录执行命令,除非某节另有说明:

git clone https://github.com/mason173/aira-browser.git
cd aira-browser

本地运行 Personal Server

不落持久数据、最快验证服务是否正常:

cd services/personal-server
npm ci
npm run check

用 Docker 跑一份会持久化的本地实例:

cd services/personal-server
cp .env.example .env
docker compose up -d --build
docker compose exec aira-server cat /data/setup-code

用打印出的一次性配对码连接开发客户端。默认 Compose 绑定 127.0.0.1:8787;要对外访问,先加 TLS 反代。备份、恢复、升级、反代和凭证吊销见服务 README 与运维文档。

构建 Aira-sync

cd extensions/aira-sync
npm ci
npm run typecheck
npm test
npm run build:community

Community 产物在 build/community/,可在 Chromium 内核浏览器里以未打包扩展加载。公开 Community 清单有固定扩展 ID efehgppkhnkjamcpbipclfmmofdildji。

Official 构建通过 AIRA_SYNC_OFFICIAL_API_ROUTES 注入私有路由,本仓库不含生产地址。完整路由字段和打包命令见扩展 README。

构建鸿蒙客户端

用 DevEco Studio 打开 AiraBrowser/,或使用根目录构建脚本:

cd AiraBrowser
ohpm install
cd ..
AIRA_DISTRIBUTION=community AIRA_ALLOW_UNSIGNED_BUILD=1 SKIP_INSTALL=1 ./scripts/build-aira-browser.sh

这会打出供 CI 和源码核验用的未签名 Community HAP。装到设备需要 org.aira.browser 的本地签名。Official 构建另外需要私有 AGConnect、生产路由,以及 com.aira.browser 的签名:

AIRA_DISTRIBUTION=official SKIP_INSTALL=1 ./scripts/build-aira-browser.sh

不要提交 agconnect-services.json、带加密密码的 build-profile、.p12 / .p7b 或其他签名材料。Official 签名和装机脚本是私有打包流程,不在本仓库。Community 构建见 AiraBrowser/README.md。

Community 与 Official

两种发行版共用源码和测试,差别只在构建时的身份和私有能力输入:

能力CommunityOfficial
本地浏览与本地存储可用可用
用户自选 WebDAV可用可用
Personal Server 同步与跨端标签可用可用
华为账号 / 华为云空间未配置私有华为项目与审批
Aira 云托管服务未配置私有服务路由与权益
华为 IAP / Aira Pro未配置私有生产服务

增改 Provider 或发行边界前先读 docs/open-source-distribution.md。不要长期分叉 Community,也不要把 Official 专用页面复制成第二套源码。

贡献流程

跨组件协议改动放在同一个 pull request,改到的组件都要跑检查。策略、传输、持久化和编排放进现有的 core、services、data 或 features,不要堆进原生 UI 壳。

提 PR 前:

# 仓库根目录
git diff --check

# Aira-sync 改动
(cd extensions/aira-sync && npm run typecheck && npm test)

# Personal Server 改动
(cd services/personal-server && npm run check)

评审要求见 CONTRIBUTING.md,漏洞私下报告见 SECURITY.md。不要在 issue 或 PR 里附带设备数据、凭证、token、数据库、备份、浏览器配置或生产配置。

许可

Aira 原创源码按 GPL-3.0-only 提供。第三方组件保留各自许可,见 THIRD_PARTY_NOTICES.md 及各组件目录中的声明。

许可不授予 Aira 名称、标识或其他商标权利。见 TRADEMARKS.md。

Star History

Star History Chart

关于 About

Aira Browser · 鸿蒙原生浏览器

语言 Languages

JavaScript34.6%
TypeScript29.6%
Shell24.6%
HTML4.2%
C++3.1%
Python1.9%
CSS1.2%
Rust0.6%
CMake0.2%
Dockerfile0.0%
Handlebars0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
475
Total Commits
峰值: 118次/周
Less
More

核心贡献者 Contributors