❶ 如何獲取其他android系統的platform.pk8簽名文件
註:兩種方法都不一定適用於所有android系統。
方法一:需要在Android系統源碼的環境下用make來編譯:
在應用程序的 AndroidManifest.xml 中的 manifest 節點中加入 android:sharedUserId="android.uid.system" 這個屬性
修改Android.mk文件,加入LOCAL_CERTIFICATE := platform這一行
使用mm命令來編譯,生成的apk就有修改系統時間的許可權了。
方法二:
同上,加入android:sharedUserId="android.uid.system"這個屬性。
使用eclipse編譯出apk文件,但是這個apk文件是不能用的。
用壓縮軟體打開apk文件,刪掉META-INF目錄下的CERT.SF和CERT.RSA兩個文件。 (這一步我跳過了(原本是無意的,後來發現下面也有提到),結果一樣可以)
使用目標系統的platform密鑰來重新給apk文件簽名。這步比較麻煩,首先找到密鑰文件,在Android源碼目錄中的位置 是"build\target\proct\security",下面的platform.pk8和platform.x509.pem兩個文件。然 後用Android提供的Signapk工具來簽名,signapk的源代碼是在"build\tools\signapk"下,用法為"signapk platform.x509.pem platform.pk8 input.apk output.apk",文件名最好使用絕對路徑防止找不到,也可以修改源代碼直接使用。
<此時這樣最後得到的apk和第一個方法是一樣的>
解釋一下原理,首先加入android:sharedUserId="android.uid.system"這個屬性。通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中。那麼把程序的UID配成android.uid.system,也就是要讓程序運行在系統進程中,這樣就 有許可權來調用那些需要系統許可權的函數了。 只是加入UID還不夠,如果這時候安裝APK的話發現無法安裝,提示簽名不符,原因是程序想要運行在系統進程中還要有目標系統的platform key,就是上面第二個方法提到的platform.pk8和platform.x509.pem兩個文件。用這兩個key簽名後apk才真正可以放入系 統進程中。第一個方法中加入LOCAL_CERTIFICATE := platform其實就是用這兩個key來簽名。
有一個問題,就是這樣生成的程序只有在原始的Android系統或者是自己編譯的系統中才可以用,因為這樣的系統才可以拿到platform.pk8 和platform.x509.pem兩個文件。要是別家公司做的Android上連安裝都安裝不了。試試原始的Android中的key 來簽名,程序在模擬器上運行OK,不過放到G3上安裝直接提示"Package ... has no signatures that match those in shared user android.uid.system",這樣也是保護了系統的安全。
最後說一下,這個android:sharedUserId屬性不只可以把apk放到系統進程中,也可以配置多個APK運行在一個進程中,這樣可以共享數據,應該會很有用的。
❷ 如何用Android MTK源碼生成簽名文件
在Linux環境中,以Android源碼目錄為根目錄
cd build/target/proct/security/
其中的platform.pk8是製作系統簽名需要的文件、
1 在這個目錄下,執行
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
生成臨時文件platform.pem
2 接著執行以下命令,將在目錄下生成platform.p12文件,它本質上應該就是一個數字證書。
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkey
3 然後再執行以下,
keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android
這個名字可以改成debug.keystore. 後綴名沒有關系,eclipse和AS都識別 platform.jks
出現以下信息,表示成功生成 platform.jks
4 然後在打包 apk 的時候選擇platform.jks文件,就可以直接用adb命令安裝apk到機器中了。
adb install xxxx
❸ 怎樣查看 Android APP 源代碼
用壓縮軟體打開apk文件,解壓出根目錄中的classes.dex文件
使用cmd ,dex2jar.bat classes.dex命令將classes.dex轉換為jar
再用jd-gui打開該jar就可以查看源碼了,如果apk安全性好的話,有些代碼是看不到的
❹ android系統是開源去哪裡下載源代碼
他這不是編程原代碼對外公開,而是系統外部介面對外公開,簡單說,開源就好比是,英特爾生產一個CPU 然後告訴你所有的腳都是干嗎用的,這個告訴你干嗎用的就等於是安桌的開源了, 你知道CPU那些腳干嗎用的後,然後再根據這些腳的功能生產主板,針對這些腳所生產出來的主板就好比那些為因安桌開源後,別人針對安桌所編寫出來的軟體了,
❺ 安卓源代碼怎麼用
網上給的android源代碼怎麼用?
git的工程裡面不是都有英文的readme么,File -> import先瀏覽到目錄到library,導入library,然後,瀏覽到samples目錄導入samples,結束。
我總共就花了兩分鍾下載導入,build,截圖,發帖回答。
我在網上下了一些Android的源代碼,不知道怎麼用Eclipse運行
file>import> 輸入android 下一步 把你的項目導進去就好了
安卓源碼怎麼用
是import 然後選android 導入整個目錄就行了
下載的安卓源碼怎麼用? 20分
如果是用的ecilipse,在file裡面有個import,剩下的操作可以看這個鏈接
blogs/...9
一個android的源程序怎樣用eclipse打開
用eclipse的import功能將其導入,就可拆帶以打開了
android軟體開發 怎麼讀懂一個android源代碼
一開始都會感覺到疑惑,網路上,論壇上,甚至是書本上都講不清楚,不知道這是什麼原因,我想人類的私心在裡面會占據很大的因素。
不是每個人都願意分享自己辛苦得來的經驗和心得。
android軟體,你可以這么看,它是用java語言+很觸很多的現成的已經被別人寫到的包組合成的。
其實它的本質就是java,然後那些慎旦界面什麼,其實核心就是一個叫做XML的東西。
這個XML其實也沒什麼神秘,就是一個國際化的,標準的標簽。
然後標簽其實說白了就是記號,你在這個XML文件裡面,按照谷歌給你定好的游戲規則,寫標簽,然後這個標簽會被自動解析成相應功能。
整個android界面其實就是一個XML文件,android表面上的東西幾乎都是XML文件組成的,旅孝蘆剩下的核心程序邏輯,其實就是java程序。
再換句話說,你可以在java上把程序邏輯寫好,然後單獨寫個XML文件,然後合並起來,就是android
java問題。安卓手機源代碼怎麼運行
既然你安裝了eclipse那你就可以配置sdk環境,然後建一個android project,把你的源代碼放進去,選擇在你自己的手機上運行就會自動安裝到你手機上了。嫌麻煩的話可以發給我,我幫你運行一下直接給你app文件
如何打開android 源代碼
導入工程文件,就是文件下的Import,打開導入面板後選擇已經存在的項目,在第二項裡面,然後定擇你項目的文件夾即可,eclipse會自動掃描
怎樣著手研究 Android 源代碼
一、源碼里的工程需要導入所有的Android源碼,不可以單獨作為一個Android工程導入到Eclipse里。
二、使用git和repoAndroid的源代碼,參考如下步驟
以下操作都是在Ubuntu10.04LTS下完成:
1)安裝git
sudo apt-get install git-core
2)安裝curl
sudo apt-get install git-core curl
3)安裝Repo,為了方便直接repo到用戶根目錄中。通過curlrepo
安卓游戲中的源代碼有什麼用,是如何編寫和解析的
會java語言么?不會的話跟你解釋也是扯淡
❻ 怎樣查看 Android APP源代碼
將apk文件拷貝至sdcard上。
命令順序如下:
進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,
其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:
在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!
❼ 拿到Android 項目源碼後,如何才能以最高效的速度看懂
1.顯然Eclipse不是閱讀Android源碼的好工具,不流暢,搜索低效,繼承性關系/調用關系都無法有效查看。推薦Source Insight,在這個工具幫助下,你才可以駕馭巨大數量的Android 源碼,你可以從容在Java,C++,C代碼間遨遊,你可以很快找到你需要的繼承關系。
順便,我們公司一直是Windows+Linux+Samba的工作模式。
2.宏觀上看,Android源碼分為功能實現上的縱向,和功能拓展上的橫向。在閱讀源碼時需要把握好著兩個思路。
譬如你需要研究音頻系統的實現原理,縱向:你需要從一個音樂的開始播放追蹤,一路下來,你發現Jni調用解碼庫,共享內存的創建和使用,路由的切換,音頻輸入設備的開啟,音頻流的開始。
3.Android的功能模塊絕大部分是C/S架構,你心裡一定需要有這個層級關系,你需要思路清晰地找到Server的位置,它才是你需要攻破的城。然後你才能發現HAL和Kernel一層層地剝離。
我大概在三個月前閱讀完Android UI系統的源碼,這是Android最復雜的部分,沒有之一。
我需要先找一個開頭,和UI有直接關系的就是最常見的Activity了吧,我就從它開始解剖。
我從Activity的創建入手,尋找Activity真正的創建位置,setContentview這個方法很明顯和UI有關,這兩方面一結合,我發現了ViewRoot和WindowManager的身影,沿著WM和WMS我發現了Surface,以及draw的函數,它居然在Activity 創建時出現的DeCorView上畫東西。藉助Source Insight我總結了UI Java層的橫向靜態圖。
完成這個靜態UML,我覺得我可以開始功能實現上追蹤了,這部分主要是C++的代碼(這也是我堅定勸阻的放棄Eclipse的原因),我沿著draw函數,看到了各個層級的關系,SurfaceSession的控制和事務處理,SharedBuffer讀寫控制,彪悍的SurfaceFlinger主宰一切,OpenGL ES的神筆馬良。FrameBuffer和FrameBufferDevice的圖像輸出。一氣呵成的完成了。
❽ 怎樣查看 Android APP 源代碼
需要把反編譯的apk存放到apktools同級文件夾目錄下,然後運行要查看的安裝包,具體操作如下:
1、首先把反編譯的apk存放到apktools同級文件夾目錄下,如下圖所示。
❾ 如何獲取android源代碼
當前的Android代碼託管在兩個方:https://github.com/android 和https://android.googlesource.com之前在 android.git.kernel.org上也有託管,不過現在重定向到了https://android.googlesource.com好在都支持git訪問。
google提供的repo工具實際上是一個內部操作git工具來簡化操作Android源碼的Python腳本。經過嘗試,直接使用git工具在ubuntu下可以實現cloneAndroid源碼。下面介紹一下方法:
1.獲取當前的在github上託管的Androidgitrepositories:
github頁面為:https://github.com/android/following。不過這個頁面不支持通過wget"https://github.com/android/following"或者curl"https://github.com/android/following"的方式訪問,錯誤信息如下:
這個時候需能做的只能是"tryagain"了。
需要說明的是"不要試圖同時並發執行多個gitclone命令",這樣會導致大量出現上面貼圖中的錯誤,另外,整個clone過程中耗時最多的gitrepository如下:
kernel_common.gitkernel_msm.gitplatform_frameworks_base.gitplatform_prebuilt.git其中platform_prebuilt.git是google提供的預編譯好的二進制文件,包含:各種庫文件,jar包,可執行程序等等,如果只是閱讀Android源代碼,這個gitrepository可以不用clone.
❿ 怎麼在windows下查看android源碼
如何查看Android源碼[以Android2.2為例]
我們知道在Eclipse里按住Ctrl鍵不鬆手在某個類上點擊滑鼠左鍵,可以跳轉到該類的文件。如果沒有源碼就會跳到class文件上。因此我們只需要把源碼拷貝到合適位置,Eclipse就可以找到源碼了。接下來我說一下步驟:
把android-2.2-froyo-src.zip源碼下載下來,[解壓後]放在Android
SDK的指定目錄下,在我機器上的目錄是:C:/AndroidSDK/android-sdk-windows/platforms/android-
8/sources,其中sources目錄是自己建的。解壓後的情況應該是這樣的:
在Javadoc For 'ormlite-android-4.22.jar'屬性框中點擊Browse按鈕來選擇幫助文檔包,然後點擊OK按鈕。
第四:經過以上的操作步驟,就完成了對第三方組件源碼的添加設置以及幫助文檔的添加和設置。這樣就可以和查看Android源碼一樣可以查看第三方組件的源碼了,同時在Eclipse中把游標定位到某個類,按F1鍵就可以查看相應的幫助文檔了。對ormlite-core-4.22.jar的操作也是一樣。