IT之家學院:在Android X86上運行基於ARM處理器的應用程序
Android X86上運行基於ARM處理器的應用程序
眾所周知,移動端的ARM CPU和計算機上的X86 CPU使用不同的指令集。雖然在編譯時可以選擇不同的編譯器編譯對應的程序,但是Android作為一個天生為手機開發的系統,基於ARM的程序佔據了幾乎所有的Android生態環境。於是Android X86的一個至關重要的問題就是兼容ARM應用程序。
這裡要提一下Intel。Intel為了打入移動市場,不僅做出了像Atom這樣的的CPU,還順帶開發了一系列軟體。其中對應Android X86的問題開發了Houdini。Houdini可以把ARM指令集轉化為X86指令集從而在Android X86設備上運行。
準備條件:打開設置-應用兼容性-兼容模式
打開後如下圖:
不要以為就這麼簡單,接下來正式開始教程。
官方步驟(對國內用戶無效):
打開終端模擬器,先輸入su,回車,等出現#再輸入enable_nativebridge
輸入後系統會自動下載Houdini並運行。
實際運行情況如下:
系統會一直連接goo.gl造成死循環。
打開/system/bin/enable_nativebridge,可以看到這其實是一個Shell腳本文件。
其中問題出在goo.gl短鏈接識別不出來。
在[ "`uname -m`" = "x86_64" ] && url=http://goo.gl/Knnmyl || url=http://goo.gl/JsoX2C這一行就是Houdini的下載地址。我用的是Android 6.0,如果Android版本不一致Houdini是不通用的,請自行提取你的電腦上的/system/bin/enable_nativebridge文件。
如果你是64位的Android鏡像,就打開左邊的鏈接。
如果你是32位的Android鏡像,就打開右邊的鏈接。
通過Windows開VPN下載了一個houdini.sfs的文件,這就是ARM翻譯器的鏡像了。
複製下面的代碼為.sh文件:
(32位版)
#!/system/bin/sh
PATH=/system/bin:/system/xbin
busybox mount /system/bin/houdini$1.sfs /system/lib$1/arm$1
if [ ! -e $binfmt_misc_dir/register ]; then
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
fi
cd /proc/sys/fs/binfmt_misc
# register Houdini for arm binaries
echo ":arm_exe:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28::""/system/lib/arm/houdini:P" > register
echo ":arm_dyn:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x28::""/system/lib/arm/houdini:P" > register
[ "$(getprop ro.zygote)" = "zygote64_32" -a -z "$1" ] && exec $0 64
exit 0
(64位版)
echo ":arm64_exe:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7::""$dest_dir/houdini64:P" > register
echo ":arm64_dyn:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7::""$dest_dir/houdini64:P" > register
並把houdini.sfs複製到Android的/system/bin
接著打開終端模擬器,先輸入su,再運行這段腳本。
恭喜你,大功告成。
如果想要每次開機自動啟用ARM翻譯器,可以把腳本文件放到/system/etc/init.d/
啟用前:
啟用後:
可以看到CPU已經被識別為「ARMv7」,ARM翻譯器已經正常工作了。
想看到更多這類內容?去APP商店搜IT之家,天天都有小歡喜。


※微博無法訪問原因來自網路故障:目前移動端恢復正常
※2999元:美圖M8美少女戰士限量版明日開售,國外炒到天價
※京東618開設「店中店」京東之家:設在沃爾瑪超市裡
※聯想Moto Z2 Play中國版再曝:軟體ZUK ZUI包圓了
※蘋果iOS版鬥魚直播APP更新:正式支持騰訊王卡免流
TAG:IT之家 |
※Meta推出AR 3C CAD可視化應用程序Meta Viewer
※Magic Leap One開發NAB專屬AR應用程序
※Google的AR「Measure」應用程序適用於所有ARCore Android手機
※開獎+小程序抽籤丨Nike Air Presto Mid x ACRONYM?
※使用CoreRT將.NET Core發布為Native應用程序
※Tornado推出CLA ECU電腦程序
※使用Wine 3.0在Android設備上運行Windows應用程序
※ASP 程序Cookies
※FPGA學習之USB Blaster驅動程序的安裝
※PowerShell-RAT:一款基於Python的後門程序
※微軟的Azure Stack HCI:運行連接Azure的虛擬化應用程序的新選擇
※ARM Linux的中斷服務程序工作在ARM的IRQ模式嗎?
※Facebook將關閉三個社交網路應用程序:Moves,Hello和TBH
※蘋果正式啟動12英寸MacBook和MacBook Pro鍵盤修復程序
※AppML Customers - 完整的應用程序
※React 程序的JSX
※Google發布基於AI的學習程序Socratic
※AppML Products 之完整的應用程序
※秒變家裝達人Sherwin-Willaims發布AR應用程序
※Android銀行木馬——Red Alert 2.0偽裝成合法程序進行傳播