Skip to content
Projects

harmoninux/HiSH has 685 GitHub stars and 52 forks. GitHot measured +2 stars in 24 hours and +6 in 7 days. Last checked 2026-11-10 01:17 UTC. Last push 2026-10-30.

How these counts are measured

在鸿蒙上运行Linux Shell,支持手机、平板、2in1/PC

Measured star growth

in 24h
+2
in 7 days
+6
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README_EN.md

Original

HiSH

GitHub | GitCode | Gitee | 中文

Run Linux Shell on HarmonyOS devices! Based on qemu-ohos, both 2in1(PC), Tablet and Phone are supported.

On multiple devices

How to get

You can try one of following methods to get HiSH:

  • Install from AppGallery (JIT not supported, run slower)
  • Download hap from Releases page and signed by yourself, then install to your device or emulator (JIT suported, runs faster)
  • Build from source code in DevEco Studio, see Build and install HAP (JIT suported, runs faster)

Core Features

  • Complete arm64 Linux kernel
  • Networking with port forwarding
  • Alpine Linux rootfs
  • Virtual Keys (Tab/Ctrl/Esc/Up/Down/Left/Right)
  • Shared Folder
  • JIT (Supported on Pad/2in1, not supported on Phone)
  • Image import(Ubuntu24.04 / Debian12)

How to build

  • HAP bundle
  • libqemu-system (optional)
  • Linux kernel (optional)
  • rootfs (optional)

Build HAP

Build libqemu-system (Optional)

Build your own libqemu-system-aarch64.so for feature/hish_main/libs on Ubuntu (or WSL2 on Windows), for customizing libqemu

  • Install dependencies
sudo apt install -y build-essential cmake curl wget unzip python3 libncurses-dev \
		git flex bison bash make autoconf libcurl4-openssl-dev tcl \
		gettext zip pigz meson
  • Download "Command Line Tools" for Linux from https://developer.huawei.com/consumer/cn/download/
  • Extract downloaded zip and set TOOL_HOME env variable to command-line-tools directory
  • Change current directory to deps and run make, for x86_64 emulator default
    • For real devices(aarch64), you can run make aarch64
    • For Phone devices where JIT is unavailable, run make aarch64-tci to build QEMU with the TCG interpreter (TCI), producing libqemu-system-aarch64-tci.so. This is slower than JIT, but does not require JIT support.
cd deps
make
  • See *.so files in deps/output
ls -lh output

Build Linux Kernel (Optional)

Build your own Linux kernel for HiSH, for customizing Linux kernel

  • Install dependencies
sudo apt install build-essential gcc bc bison flex libssl-dev \
 libncurses5-dev libelf-dev gcc-aarch64-linux-gnu \
 clang lld llvm make 
  • Clone linux kernel source to local
git clone --depth=1 -b v6.12 https://github.com/torvalds/linux
  • Download linux kernel build config
cd linux
curl https://raw.githubusercontent.com/harmoninux/linux-config/refs/heads/master/arm64_virt > .config
  • Build Linux kernel
export KCFLAGS='-march=armv8.5-a+crc+crypto+lse+rcpc+rng+sm4+sha3+dotprod+fp16 -mtune=neoverse-n1 -O2 -falign-functions=64 -fno-strict-aliasing -mllvm -vectorize-loops -mllvm -force-vector-width=2'
env KCFLAGS="$KCFLAGS" make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 menuconfig
env KCFLAGS="$KCFLAGS" make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 -j$(nproc)
  • The kernel image is at arch/arm64/boot/Image, copy it to feature/hish_main/src/main/resources/rawfile/vm/kernel_aarch64

Build rootfs for Linux (Optional)

Build your own rootfs for HiSH

mkdir alpine
tar xvf alpine-minirootfs-3.22.1-aarch64.tar.gz -C alpine
  • Use qemu-img to create a rootfs.img file
qemu-img create -f raw rootfs.img 8G
  • Make fs for rootfs.img file
mkfs.ext4 rootfs.img
  • Mount rootfs.img as directory
sudo mkdir /mnt/rootfs
sudo mount rootfs.img /mnt/rootfs
  • Copy files of rootfs to /mnt/rootfs
sudo cp -r alpine/* /mnt/rootfs
  • Unmount /mnt/rootfs
sudo umount /mnt/rootfs
  • Convert raw img to qcow2 format
qemu-img convert -p -f raw -O qcow2 rootfs.img rootfs.qcow2
  • Put rootfs.qcow2 to feature/hish_main/src/main/resources/rawfile/vm/rootfs_aarch64.qcow2

Star History

Explore related projects