Android Q源碼下載献酗,源碼編譯

為啥要編譯Android Q蠢莺?

  • 大家都知道Android Q是目前Google發(fā)布的最新的Android版本,目前最新的一版Android Q bata4蝇闭,現(xiàn)在還沒有手機(jī)廠商進(jìn)行適配呻率,只有測(cè)試版本的適配方案。
  • 但是我司是一個(gè)做SDK的公司呻引,SDK是打包到手機(jī)廠商的ROM中使用的礼仗。其中用到了很多系統(tǒng)級(jí)的權(quán)限,比如IMEI獲取逻悠,MAC地址獲取元践,WIFI連接配置等等。
  • 為了測(cè)試SDK的兼容童谒,不得不手動(dòng)編譯Android Q 從而進(jìn)行系統(tǒng)簽名单旁,并驗(yàn)證對(duì)應(yīng)的功能的兼容性。

?

到底怎么編譯Android Q源碼?

扯了這么久饥伊,那到底怎么才能編譯Android 源碼象浑? 開始我也是帶著這個(gè)疑問一臉懵逼的查看對(duì)應(yīng)的文檔,首先我找到了這篇

https://source.android.google.cn/source/downloading

整體分為以下幾步
1.首先你得有個(gè)Ubuntu系統(tǒng)琅豆,最好是14.0以后的18.0以下的愉豺,比如我用的是Ubuntu16.0.4
2.把git,python都下好。
3.把repo工具下好(repo是一種代碼版本管理的工具茫因,是用python腳本寫的蚪拦,封裝了一堆git命令,統(tǒng)一管理代碼倉(cāng)庫(kù)用的,大概就這個(gè)功能)
    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
4.新建一個(gè)文件夾驰贷,在這個(gè)新文件夾中先把Android 的源碼倉(cāng)庫(kù)同步下來盛嘿,這個(gè)倉(cāng)庫(kù)名稱叫manifest倉(cāng)庫(kù),具體方式如下
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

這個(gè)過程很容易報(bào)錯(cuò)饱苟,一般都會(huì)報(bào)無法連接到 gerrit.googlesource.com孩擂,這是因?yàn)槲覈?guó)有墻而你沒梯子。解決方式有兩種箱熬,我第一種沒解決成功类垦,如果你們也不成功可以使用第二種。

1). 編輯 ~/bin/repo文件城须,找到REPO_URL這一行,然后將其內(nèi)容修改為:

REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

2). 通過以下幾步解決
- a.首先先調(diào)用git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
- b.將git-repo里面的repo文件復(fù)制到/bin目錄
- c.在同步源碼的工作目錄新建.repo文件夾
- d.把git-repo重命名為repo復(fù)制到.repo目錄下

5.通過manifest 倉(cāng)庫(kù)獲取android源碼的對(duì)應(yīng)版本源碼蚤认,比如我們想獲取Android Q的源碼可以調(diào)用
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-q-preview-2.5
6.調(diào)用同步命令 repo sync,至此Android Q源碼會(huì)啟動(dòng)下載糕伐,這個(gè)過程比較漫長(zhǎng)砰琢,中間可能會(huì)出一些小問題,可以繼續(xù)通過repo sync重試下載良瞧,它會(huì)自動(dòng)過濾已下載的文件陪汽。
7.編譯Android 源碼需要OpenJDK 8,可通過sudo apt-get install openjdk-8-jdk下載安裝褥蚯,如果之前有裝過openjdk的其他版本可以通過以下命令進(jìn)行切換
sudo update-alternative --config java
sudo update-alternative --config javac
8.編譯依賴設(shè)置挚冤,順序執(zhí)行就可以了。
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
    sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
    sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
    sudo apt-get install git-core gnupg flex bison gperf build-essential  
    sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 
    sudo apt-get install libc6-dev-i386 
    sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 
    sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
    sudo apt-get install lib32z-dev ccache
9.一切就緒赞庶,初始化編譯環(huán)境训挡,在源碼文件夾調(diào)用 build/envsetup.sh
10. 選擇編譯目標(biāo),通過lunch命令選擇編譯目標(biāo)歧强,比如我想編譯aosp_arm64-eng澜薄,則執(zhí)行命令lunch aosp_arm64-eng
11.開始編譯,執(zhí)行命令 make -j8摊册,等待編譯完成即可肤京。

?

Android Q到底有哪些新特性?

?
編譯進(jìn)行中茅特,首先要知道Android Q到底做了什么更改(如果已經(jīng)了解蟆沫,請(qǐng)直接略過),以下是我參考Google官方對(duì)Android Q 的一些調(diào)研温治。Android Q更新了很多API,也增加了一些對(duì)應(yīng)的權(quán)限戒悠,比如...

  1. 范圍存儲(chǔ)

?? 更改應(yīng)用程序訪問設(shè)備外部存儲(chǔ)上文件的方式熬荆,例如存儲(chǔ)在路徑中的文件/sdcard。Android Q繼續(xù)使用 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 權(quán)限绸狐,這些權(quán)限對(duì)應(yīng)于存儲(chǔ)面向用戶的運(yùn)行時(shí)權(quán)限卤恳。但是累盗,默認(rèn)情況下針對(duì)AndroidQ的應(yīng)用(以及選擇更改的應(yīng)用)會(huì)獲得外部存儲(chǔ)的過濾視圖。此類應(yīng)用程序只能查看其特定于應(yīng)用程序的目錄和特定類型的媒體突琳,因此應(yīng)用程序無需請(qǐng)求任何其他用戶權(quán)限若债。

  1. 設(shè)備位置權(quán)限

    增加了后臺(tái)位置權(quán)限,如果應(yīng)用需要在后臺(tái)定位需要單獨(dú)增加 ACCESS_BACKGROUND_LOCATION

  2. 后臺(tái)活動(dòng)限制

    限制了應(yīng)用何時(shí)可以開始活動(dòng)拆融。此行為更改有助于最大限度地減少用戶的中斷蠢琳,并使用戶更好地控制屏幕上顯示的內(nèi)容

  3. 隱私數(shù)據(jù)限制

    MAC地址,IMEI號(hào)镜豹,/proc/net/filesystem傲须,剪貼板等均控制訪問限制,其中IMEI獲取可以通過READ_PRIVILEGED_PHONE_STATE權(quán)限進(jìn)行獲取趟脂,但是該權(quán)限必須要求signature|privileged

 <!-- @SystemApi Allows read access to privileged phone state.
        @hide Used internally. -->
   <permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
       android:protectionLevel="signature|privileged" />
  1. 相機(jī)的getCameraCharacteristics()的返回范圍
  2. Wi-Fi的啟用/關(guān)閉方法

    針對(duì)Android Q的應(yīng)用無法啟用或停用Wi-Fi泰讽。該 WifiManager.setWifiEnabled()方法總是返回false。如果需要昔期,可以使用設(shè)置面板提示用戶啟用和禁用Wi-Fi已卸。

  3. Wi-Fi網(wǎng)絡(luò)配置限制

    Wi-Fi網(wǎng)絡(luò)列表的手動(dòng)配置限制在系統(tǒng)應(yīng)用和 設(shè)備策略控制器(DPC)中。給定的DPC可以是設(shè)備所有者或配置文件所有者硼一。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末累澡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欠动,更是在濱河造成了極大的恐慌永乌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具伍,死亡現(xiàn)場(chǎng)離奇詭異翅雏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)人芽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門望几,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人萤厅,你說我怎么就攤上這事橄抹。” “怎么了惕味?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵楼誓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我名挥,道長(zhǎng)疟羹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮榄融,結(jié)果婚禮上参淫,老公的妹妹穿的比我還像新娘。我一直安慰自己愧杯,他們只是感情好涎才,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著力九,像睡著了一般耍铜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上畏邢,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天业扒,我揣著相機(jī)與錄音,去河邊找鬼舒萎。 笑死程储,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的臂寝。 我是一名探鬼主播章鲤,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咆贬!你這毒婦竟也來了败徊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤掏缎,失蹤者是張志新(化名)和其女友劉穎皱蹦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眷蜈,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沪哺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酌儒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜妓。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖忌怎,靈堂內(nèi)的尸體忽然破棺而出籍滴,到底是詐尸還是另有隱情,我是刑警寧澤榴啸,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布孽惰,位于F島的核電站,受9級(jí)特大地震影響鸥印,放射性物質(zhì)發(fā)生泄漏勋功。R本人自食惡果不足惜腥例,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酝润。 院中可真熱鬧,春花似錦璃弄、人聲如沸要销。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疏咐。三九已至,卻和暖如春脐供,著一層夾襖步出監(jiān)牢的瞬間浑塞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工政己, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酌壕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓歇由,卻偏偏與公主長(zhǎng)得像卵牍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沦泌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345