《純技術分析阿里雲OS和Android之間的關係》補充
使用的方法是,通過Binary,動態庫的名字來推測它本質上是什麼,在AOSP Android中有沒有相同或類似的東西。
刷機包的來源是http://bbs.aliyun.com/read.php?tid=22809
.so檔案一般指的是linux下的動態連結用的庫,它的作用類似於windows架構中的dll。簡單地說,原始碼的函式被編譯成二進位制格式,存放在.so庫中。.so庫可以被動態呼叫。在Android中的app如果要使用C,C++程式碼編譯出的二進位制程式,一般都得通過JNI呼叫.so庫的方式。
system/lib/ 中的動態庫
liba2dp 藍芽a2dp協議用的引數
libacc Android內建的輕量級C編譯器
libAK8975Compass 可能是日本旭化成Electronic的Ak8975指南針相關庫
libaligl2 可能是阿里雲的相關庫
libalipy 可能是阿里雲的相關庫
libalitag 可能是阿里雲的相關庫
libandroid Android提供的一些API實際執行時呼叫的庫
libandroid_runtime 和Android中實現的JNI的主要庫,由frameworks/base/core/jni/下的程式碼編譯而來
libandroid_services 和Android中實現的JNI有關的庫
libappengine 可能是阿里雲appengine相關庫
libardrv_dynamic 可能是和NVIDIA相關的庫(W700使用了NVIDIA Tegra2作為其AP處理器)
libasound alsa-lib(Advanced Linux Sound Architecture),linux的音訊系統的中間層,用於Android
libasound 同樣是alsa的庫
libaudioeffect_jni Android與音效有關的庫,涉及到密集運算,因此用C程式碼實現可能更有效率
libaudioflinger Android的audio最核心的部分是audioflinger,audioflinger向上處理來自於應用程式的聲音相關的所有請求,向下通過AudioHardwareInterface訪問硬體
libaudiopolicy audioflinger必需的庫
libbinder Android用於實現binder機制的庫,binder用於Android的跨程式通訊
libbluedroid Android中和藍芽(bluetooth)相關的庫
libbluetooth Android中和藍芽(bluetooth)相關的庫
libbluetoothd Android中和藍芽(bluetooth)相關的庫
libc Android中C執行庫的實現,也就是Bionic
libcalibrate Android中與觸控式螢幕相關的庫
libcamera Android中與攝像頭相關的庫
libcamera_client Android中與攝像頭相關的庫
libcameraservice Android中與攝像頭相關的庫
libcgdrv 可能是與Tegra 2相關的庫
libcloudletevent 可能是阿里云云服務相關庫
libcloudletos 可能是阿里云云服務相關庫
libCommon Android的相關庫
libcrypto Android中所使用的OpenSSL的一部分,包含了所使用到的加密演算法的庫
libctest C++測試工具,被Android採用
libcutils Bionic的一部分,是Android中最基礎的庫
libdbus Dbus,被Android拿來用於程式間通訊
libdiskconfig Android中與儲存(磁碟)相關的庫
libdl Bionic實現的動態連結相關的庫
libdrm1 Android中與drm(電子版權管理)相關的庫
libdrm1_jni Android中與drm相關的庫
libdvm Dalvik虛擬機器本體
libeffects Android中與媒體相關的庫,原始碼在/mdia/libeffects/中
libEGL Android採用的OpenGL相關庫
libemoji “絵文字”(顏文字)相關庫
libETC1 OpenGL相關庫
libexif Android所採用的編輯照片EXIF資訊相關的庫
libexpat (The Expat XML Parser)一個叫做Expat的XML解析器,可在Android的原始碼目錄/platform/external/下面
libFFTEm Android使用的一個用於計算FFT(快速傅立葉變換)的庫
libGLESv1_CM Android採用的OpenGL ES相關庫
libGLESv2 Android採用的OpenGL ES相關庫
libgui Android中與使用者介面相關的庫
libhardware Android中HAL(硬體抽象層)相關庫
libhardware_legacy Android中HAL(硬體抽象層)相關庫
libicui18n ICU(International Component for Unicode),Android中與字元編碼有關的庫,i18n指的是internationalization,也就是國際化,還有一個叫L10n(localization,本地化)的類似概念。
libicuuc 同樣是libicu的一部分
libiprouteutil Android中與TCP/IP棧相關的庫
libjni_latinime Android中與拉丁字母輸入法相關的庫
libjni_pinyinime Android中與中文拼音輸入法相關的庫
libjnigraphics Android 2.2開始引入的部件,與繪圖有關,對bitmap的訪問進行了封裝。
libjniktouchinner 似乎是和天語(K-touch)觸控式螢幕相關的庫
libjpeg Libjpeg是被Android拿來用於處理jpeg影像的相關庫
liblame1lib LAME,是一個著名的mp3編碼器,AOSP中似乎沒有它。LAME本身僅以原始碼形式,按照LGPL釋出以躲避法律問題,發行LAME的可執行程式(包括庫)可能需要MP3專利持有者的授權
liblamelib LAME
liblog Android所使用的,有關日誌記錄的庫
libm Bionic的一部分,與記憶體分配回收有關
libmapview-jni 沒有出現在AOSP中,可能是和阿里雲OS的地圖部件有關的庫
libmedia Android的MediaPlay架構的一部分,原始碼在/frameworks/base/media/libmedia/中
libmedia-jni MediaPlayer中負責與JNI通訊的部分
libmediaplayerservice MediaPlayer架構的一部分,通過繼承libmedia.so的類實現伺服器的功能
libmllite Android中與感測器相關的庫
libmlplatform Android中與感測器相關的庫
libmpl Android中與感測器相關的庫
libnativehelper Dalvik的一部分,用於註冊JNI呼叫的原生程式碼函式,原始碼在dalviklibnativehelper 裡面
libnetlink RSVP協議開源實現,被Android採用
libnetutils Android中有關乙太網(Ethernet)的模組
libnfc_ndef Android中用於實現nfc的一小部分,主要是實現NDEF訊息的解析,供Framework呼叫,但在這個rom中沒有找到libnfc這個主要模組
libnggame Samsung GameHub相關庫(這顯然不太可能是AOSP的一部分)
libnodejs Node.JS,一個伺服器端JavaScript 直譯器,可能用於阿里雲相關服務
##以下一長串libnv開頭的都是和NVIDIA Tegra2有關的庫,nv是NVIDIA的慣用縮寫。也就是說,也可以在別的使用Tegra晶片的手機中找到類似的內容
libnvddk_2d ddk指的可能是Driver Development Kit
libnvddk_2d_v2
libnvddk_audiofx
libnvddk_vmr
libnvdispmgr_d
libnvec
libnvmm
libnvmm_audio
libnvmm_camera
libnvmm_contentpipe
libnvmm_image
libnvmm_manager
libnvmm_misc
libnvmm_parser
libnvmm_service
libnvmm_tracklist
libnvmm_utils
libnvmm_video
libnvmm_videorenderer
libnvmm_vp6_video
libnvmm_writer
libnvodm_dtvtuner
libnvodm_imager
libnvodm_query
libnvomx
libnvomxilclient
libnvos
libnvrm
libnvrm_channel
libnvrm_graphics
libnvsm
libnvtestio
libnvtestresults
libnvwinsys
libnvwsi
##
libopensl_audio 與OpenGL ES的音訊部分相關的庫
libOpenSLES 與OpenGL ES的音訊部分相關的庫
libpixelflinger Pixelflinger是Android系統中為OpenGLES引擎提供的一套軟體渲染器
libpmstatus 可能是阿里雲郵的庫
libqqsecure 和騰訊QQ有關的庫
libreference-cdma-sms Android中與CDMA這種蜂窩網路制式相關的庫
libreference-ril
Android中的ril庫,負責與基帶(baseband)晶片的驅動(經常會被稱作‘基帶’,‘radio’等)通訊的部分
libRS Android中與使用者介面有關的庫,和launcher有關
librs_jni Android中與使用者介面有關的庫,和launcher有關
librtp_jni Android中和RTP協議相關的庫
libsensors.mpl Android中和感測器有關的庫
libsensorservice Android中和感測器有關的庫
libsinautility 和新浪微博有關的庫
libskia Android所採用的SKIA圖形引擎
libskia Android所採用的SKIA圖形引擎
libskyeye SkyEye(天目)硬體模擬平臺相關庫,可能是阿里雲OS所使用的庫
libsmsChecker 可能是QQ管家的元件
libsonivox 一個電子聲音合成器,原始碼在/external/sonivox/ 中
libsoundpool Android中和聲音回放有關的庫
libsqlite Android所使用的Sqlite的相關庫
libsqlite_jni Sqlite的相關庫,用於JNI通訊
libSR_AudioIn 和Tegra 2有關的庫
libsrec_jni 原始碼在/external/srec/ 中,
libssl OpenSSL模組主體
libstagefright FFmpeg(現在叫libav)的模組
libstagefright_amrnb_common FFmpeg(現在叫libav)的模組
libstagefright_avc_common FFmpeg(現在叫libav)的模組
libstagefright_color_conversion FFmpeg(現在叫libav)的模組
libstagefright_enc_common FFmpeg(現在叫libav)的模組
libstagefright_foundation FFmpeg(現在叫libav)的模組
libstagefright_omx FFmpeg(現在叫libav)的模組
libstagefrighthw FFmpeg(現在叫libav)的模組
libstdc++ Bionic的C++庫
libstlport Bionic的C++的STL模版庫
libstorageservice 可能是阿里雲OS的庫
libsurfaceflinger Android顯示系統的部件相關庫
libsurfaceflinger_client Android顯示系統的部件相關庫
libsystem_server Android中和系統服務有關的庫
libsysutils Android的核心模組,這裡的一個(可能是曾經的)漏洞和zergrush的提權有關
libthread_db Android採用的與多執行緒除錯有關的庫
libttspico Android採用的TTS語音相關庫
libttssynthproxy Android採用的TTS語音相關庫
libtyidservice 可能是阿里雲OS的庫
libui Android的GUI(圖形使用者介面)的中樞
libutils Android的底層庫,這個庫以C++實現,它提供的API也是C++的。Android的層次的C語言程式和庫,大都基於libutils開發。
libVideoCtrl 和視訊控制相關的庫
libvmkid_clibs 阿里雲OS的lemur虛擬機器
libvmkid_lemur 阿里雲OS的lemur虛擬機器
libvorbisidec Android採用的Vorbis解碼器(如ogg等)
libwebcore Android中的Webkit網頁渲染引擎
libwpa_client Android中和無線區域網wpa加密相關的部分
libxgold-ril 也是一個Ril模組
libz Android所使用的Zlib
node_compress node.js所使用的流壓縮器擴充套件,應該是阿里雲OS的部件
node_zipfile node.js管理zip壓縮檔案的擴充套件,應該是阿里雲OS的部件
omxplayer omxplayer是Android所使用的一個媒體播放器
system/bin 中的可執行檔案,linux的原生可執行檔案不需要,通常也沒有副檔名
akmd8975 W700所使用的指南針有關
am Android所使用的命令列工具
app_process Android中啟動java程式的途徑
applypatch 原始碼在tools/applypatch/
應該是和.patch差分補丁有關的工具,可能與OTA更新有關
auth.cgi 可能是阿里雲OS的部件
bootanimation Android負責渲染啟動動畫的
BqTool 可能是阿里雲OS的部件
brcm_patchram_plus Android中與藍芽相關的模組
bugreport Android的除錯工具,可以通過adb啟動
chpasswd.cgi 可能是阿里雲OS的部件
cyttsp_fwloader 似乎是一個Android的硬體校正工具
dalvikvm Dalvik虛擬機器的執行檔案
dbus-daemon Android採用的Dbus的看守程式
debuggerd 一個Android的守護程式,他會把出問題的程式資訊列印到檔案裡面
dexopt Android中執行odex相反動作的程式
dhcpcd Android負責進行DHCP的守護程式,可能用於wifi熱點模式
dnsmasq Android使用的一個域名解析伺服器,用於提供DNS 快取和DHCP 服務功能
dumpstate Android的命令列除錯工具
dumpsys Android的命令列除錯工具
dyz Android的命令列除錯工具,和Dalvik虛擬機器的Zygote機制有關
fsck_msdos Android使用的磁碟檢查工具
FWHelper 可能是阿里雲OS的部件
glgps Android使用的負責GPS晶片與上層通訊的守護程式
gyrotest 與陀螺儀有關的
gzip gzip壓縮工具,在Andoid上都能見到
hciattach Android上用於藍芽晶片初始化,協議繫結等功能的程式
ime Android的一個部件,原始碼在/frameworks/base/cmds/ime/
input Android的一個部件,提供一種在終端輸入命令來控制系統的方式
installd 安裝apk時相關的服務
iptables iptables防火牆,AOSP原始碼中德/external/ipdables/ 裡可以找到
keystore Android採用的金鑰/數字證照管理工具
lemur 阿里雲OS的虛擬機器程式
lexopt 阿里雲OS的虛擬機器的“dexopt”
linker Android用於共享庫的載入,連結
logcat Android的除錯工具,用於輸出日誌
logmodule Android的除錯工具,和日誌有關
logwrapper Android的除錯工具,和日誌有關
mediaserver Android的mediaserver
monkey Android的壓力測試工具,向系統傳送偽隨機的使用者事件流(鍵盤輸入、觸控式螢幕輸入、手勢輸入等)
mtpd Android中和VPN有關的守護程式
ndc Android中和網路有關的工具
netcfg Android中獲取網路資訊的工具
netd Android中和網路有關的工具
nv_hciattach NVIDIA相關的內容
nvtest NVIDIA相關的內容
omx_tests Android的測試工具
pand Android中和建立wifi熱點有關的工具
phoneService.cgi 可能是阿里雲OS的元件
ping 這個就不用說了吧,除了ping以外還有什麼
pm Android用於包管理的指令碼(顯然pm就是package manager的縮寫)
pppd Android中用於Point-to-Point Protocol的守護程式
progress.cgi 可能是阿里雲OS的元件
recoveryd 可能與recovery有關的內容
rild Android的RIL模組的守護程式
rilsyscmd 可能是和RIL模組有關的命令列工具
run-as Android的一個命令
schedtest Android的一個除錯工具
screencap Android的截圖工具
sdcard Android的和磁碟相關的工具
sdptool Android的一個管理工具
service Android的Service元件的工具
servicemanager Android的Service元件的工具
sh 這個就不用說了吧
surfaceflinger Android顯示部件的守護程式
svc Android的Service元件的工具
system_server Android的Service元件的工具
tc Android的一個工具
tegrastats NVIDIA的Tegra晶片有關的工具
toolbox Android的一個工具
upload.cgi 可能是阿里雲OS的元件
v8shell Google的V8虛擬機器,用於快速執行javascript
vdc Android的一個工具
vold (Volume Daemon) 負責大容量儲存裝置掛載和刪除的守護程式
wl Android的一個工具
wpa_supplicant Android中用於處理無線區域網的WPA(2)安全措施的守護程式
xgold-mux 可能是阿里雲OS的元件或是W700手機的元件
我的判斷是,W700用的阿里雲OS從頭到尾用的了和AOSP Android一樣的東西:Linux核心,rom中幾乎所有的二進位制部件(/bin目錄下的可執行程式,/lib目錄下的動態庫)都是和AOSP Android相同的,僅僅多出了兩個模組:lemur虛擬機器(而且這個東西的本質可能是和Dalvik沒什麼區別的)以及雲app用的一些客戶端程式,庫,框架。
到這裡為止,很明顯阿里雲OS的雲app部分是一個Android的補丁,如果按照人們通常不會把Windows 7 rtm當作windows 7 sp1升級包的補丁這樣的標準來看的話。
而lemur更像是一個Dalvik的補丁,或者不妨說,是外掛(plugin):
有一個蹊蹺的地方,在framework/目錄下的所有jar庫中的java中間程式碼全部是以lex結尾的,包括那些明顯是android framework的部分。android本身的java API都是封裝在framework/下面的庫中,包括dex格式在內應用執行的時候會直接呼叫這些jar庫中的lex格式所包含的物件(雖說實際上是經過lemur檢測/優化後的”olex”):這意味著lemur有可能和Dalvik幾乎完全相同,或者lemur就是Dalvik的一部分。
有可能lemur被寫出來的唯一目的是用於製造不相容性。退一步,lemur和Dalvik之間的區別顯然遠小於J2ME與Dalvik的差異。
Google施壓的物件是受到OHA限制的Acer,至少字面上阿里雲和這事情沒有直接關係。選擇不願意發售手機的是Acer。
所以,阿里雲公司:這個很丟人的話題,我們已經聽了很多,到這裡就可以了。不要再把你的傷口扯開了,已經夠了。
相關文章
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- Android 中Activity,Window和View之間的關係AndroidView
- 大資料技術與Hadoop之間的關係大資料Hadoop
- Activity、View、Window之間關係的分析View
- 常見Web技術之間的關係,你瞭解多少?Web
- tablespace和datafile之間的關係
- Window, WindowManager和WindowManagerService之間的關係
- 類之間的關係
- 黑客和開源革命之間的關係黑客
- 關於switchover的流程和補充
- 網站和伺服器之間的關係網站伺服器
- 如何理解Nginx、uWSGI和Flask之間的關係?NginxFlask
- SDK、JDK、JRE 和JVM 之間的關係JDKJVM
- 【java】類之間的關係Java
- Web3和元宇宙之間的關係Web元宇宙
- 備份集和備份片之間的關係
- 工具和敏捷軟體開發之間的關係敏捷
- ASM file和file alias之間的對映關係!ASM
- 重新認識“物件”和“行為”之間的關係物件
- 前端之DOM解析和渲染與CSS、JS之間的關係前端CSSJS
- Window、WindowManager、View 之間的關係View
- ODS與DW之間的關係
- UML中類之間的關係
- 不同層之間的物件關係物件
- 指標和陣列的關係(Android之JNI)指標陣列Android
- ERP和MES:互補的夥伴關係
- [技術討論]架構設計和程式碼之間的關係以及程式設計師任務安排架構程式設計師
- Kubernetes和Docker之間的關係是什麼?Docker
- 卷積層和全連線層之間的關係卷積
- width和padding之間的關係介紹padding
- 『現學現忘』Docker相關概念 — 8、虛擬化技術和容器技術的關係Docker
- 運營和技術之間不可調和的“矛盾”
- SDK、API 和 app 之間的關係和聯絡是什麼?APIAPP
- pcl::PointCloud和pcl::PontCloud::Ptr之間的關係和轉換方式Cloud
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- 關於表空間和表的關係
- git、github、gitlab之間的關係GithubGitlab