導航:首頁 > 操作系統 > androidsignedapk

androidsignedapk

發布時間:2023-01-28 17:34:19

android系統簽名apk,讓應用獲取系統級許可權

使用手機的platform平台簽名後,能夠獲取到系統許可權。
1、在AndroidManifest.xml設置android:sharedUserId="android.uid.system"。

2、編譯通過後,導出未簽名的apk。
3、使用\out\host\Linux-x86\framework\signapk.jar \build\target\proct\security\platform.pk8 +platform.x509.pem

4.執行「java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testSigned.apk」做平台簽名得到testSigned.apk。
test.apk必須放在上面同一個目錄之下。

② 安卓APP在應用市場加固之後怎麼重新簽名

可以使用jarsigner對未簽名的加固包進行簽名。

建議使用之前對APP簽名時使用的keystore對加固包進行簽名

jarsigner-digestalgSHA1-sigalgMD5withRSA-verbose-keystore[your_key_store_path]-signedjar

[signed_apk_name][usigned_apk_name][your_key_store_alias]

your_key_store_path:密鑰所在位置的絕對路徑

signed_apk_name:簽名後安裝包名稱

usigned_apk_name:未簽名的安裝包名稱

your_key_store_alias:密鑰的別名就是你自己創建的.keystore文件

③ Android中APK簽名工具之jarsigner和apksigner詳解

轉自 https://www.cnblogs.com/slysky/p/9780015.html

一.工具介紹

jarsigner是JDK提供的針對jar包簽名的通用工具,

位於JDK/bin/jarsigner.exe

apksigner是Google官方提供的針對Android apk簽名及驗證的專用工具,

位於Android SDK/build-tools/SDK版本/apksigner.bat

不管是apk包,還是jar包,本質都是zip格式的壓縮包,所以它們的簽名過程都差不多(僅限V1簽名),

以上兩個工具都可以對Android apk包進行簽名.

1.V1和V2簽名的區別

在Android Studio中點擊菜單 Build->Generate signed apk... 打包簽名有兩種簽名選項 V1(Jar Signature) V2(Full APK Signature),

從Android 7.0開始, 谷歌增加新簽名方案 V2 Scheme (APK Signature);

但Android 7.0以下版本, 只能用舊簽名方案 V1 scheme (JAR signing)

V1簽名:

V2簽名:

V2簽名優點很明顯:

注意: apksigner工具默認同時使用V1和V2簽名,以兼容Android 7.0以下版本

2.zipalign和V2簽名

位於Android SDK/build-tools/SDK版本/zipalign.exe

zipalign 是對zip包對齊的工具,使APK包內未壓縮的數據有序排列對齊,從而減少APP運行時內存消耗

zipalign -v 4 in.apk out.apk //4位元組對齊優化

zipalign -c -v 4 in.apk //檢查APK是否對齊

zipalign可以在V1簽名後執行

但zipalign不能在V2簽名後執行,只能在V2簽名之前執行!!!

二.簽名步驟

1.生成密鑰對(已有密鑰庫,可忽略)

Android Studio在Debug時,對App簽名都會使用一個默認的密鑰庫:

1.生成密鑰對

進入JDK/bin, 輸入命令

參數:

提示: 可重復使用此條命令,在同一密鑰庫中創建多條密鑰對
例如: 在debug.keystore中新增一對密鑰,別名是release

keytool -genkeypair -keystore debug.keystore -alias release -validity 30000

2.查看密鑰庫

進入JDK/bin, 輸入命令

keytool -list -v -keystore 密鑰庫名

參數:

例如:
keytool -list -v -keystore debug.keystore

現在debug.keystore密鑰庫中有兩對密鑰, 別名分別是androiddebugkey release

2.簽名

1.方法一(jarsigner,只支持V1簽名)

進入JDK/bin, 輸入命令

從JDK7開始, jarsigner默認演算法是SHA256, 但Android 4.2以下不支持該演算法,

所以需要修改演算法, 添加參數 -digestalg SHA1 -sigalg SHA1withRSA

參數:

例如:

用JDK7及以上jarsigner簽名,不支持Android 4.2 以下

jarsigner -keystore debug.keystore MyApp.apk androiddebugkey

用JDK7及以上jarsigner簽名,兼容Android 4.2 以下

jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey

2.方法二(apksigner,默認同時使用V1和V2簽名)

進入Android SDK/build-tools/SDK版本, 輸入命令

若密鑰庫中有多個密鑰對,則必須指定密鑰別名

禁用V2簽名

apksigner sign --v2-signing-enabled false --ks 密鑰庫名 xxx.apk

參數:

例如:

在debug.keystore密鑰庫只有一個密鑰對

apksigner sign --ks debug.keystore MyApp.apk

在debug.keystore密鑰庫中有多個密鑰對,所以必須指定密鑰別名

apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk

3.簽名驗證

1.方法一(keytool,只支持V1簽名校驗)

進入JDK/bin, 輸入命令

keytool -printcert -jarfile MyApp.apk (顯示簽名證書信息)

參數:

2.方法二(apksigner,支持V1和V2簽名校驗)

進入Android SDK/build-tools/SDK版本, 輸入命令

apksigner verify -v --print-certs xxx.apk

參數:

例如:

apksigner verify -v MyApp.apk

④ Android Studio打包沒有Generate signed apk選項

1.點擊build欄目-並沒有Generate signed apk選項

2.點擊file,選中如下圖所示Sync Project with Gradle Files

3.如下圖所示,Generate signed就會出來

這樣就可以打包apk啦,本人也是剛入坑,調試了半天各種查,才誤打誤撞發現的。

⑤ Android APK編譯流程

apk 是Android Package的簡寫, 在平時的開發過程中,通過點擊 Run app 按鈕 或者 在命令行中輸入

這樣Android Studio就會啟動構建流程,最終輸出一個我們想要的APK。

直達官網介紹

對於小白來說,上面一張圖已經可以解釋apk的構建過程了,不過對於Andoid開發者而言還需要了解一些更詳細的構建過程。

詳細的對應步驟 和 使用工具如下:

資源文件(res文件夾下的文件)通過 AAPT(Android Asset Packaging Tool)打包生成R.java類(資源索引表)、.arsc資源文件 和res文件。

resources.arsc 是一個App的資源索引表,通過R.java 文件 和 resources.arsc 可以定位到資源的內存地址,resources.arsc文件的作用是通過一樣的ID,根據不同的配置索引到最佳的資源顯示在UI中。

AIDL (Android Interface Definition Language), 是Android介面定義語言,是Android提供的IPC (Inter Process Communication,進程間通信)的一種獨特實現。
如果有aidl文件,這個階段會生成對應的Java介面文件。

R.java文件、工程源碼文件、aidl.java文件, 在這一步通過javac生成.class文件。

源碼.class文件和第三方jar或者library通過dx工具打包成dex文件

Android系統的Dalvik虛擬機的可執行文件為DEX格式,所以這里會將上一步中生成的.class文件 和 引用的第三方jar等過程中的.class 一起通過dx工具打包成dex文件

apkbuilder工具會將所有沒有編譯的資源、.arsc資源、.dex文件打包到一個完成apk文件中

tips:

apksigner工具會對未簽名的apk驗證簽名。得到一個簽名後的apk(signed.apk)

apksigner 是google 退出的V2簽名方式
Jarsigner 是之前一直使用的V1簽名方式

可以通過在命令行中輸入apksigner --help來獲取詳情信息,如果沒有特殊需求,使用下面命令即可完成簽名

release mode 下使用 aipalign進行align,即對簽名後的apk進行對齊處理

所謂對齊,主要過程是將APK包中所有的資源文件距離文件起始偏移為4位元組整數倍,這樣通過內存映射訪問apk文件時的速度會更快。對齊的作用主要是為了減少運行時內存的使用。

zipalign是一個android平台上整理APK文件的工具,它對apk中未壓縮的數據進行4位元組對齊,對齊後就可以使用mmap函數讀取文件,可以像讀取內存一樣對普通文件進行操作。如果沒有4位元組對齊,就必須顯式的讀取,這樣比較緩慢並且會耗費額外的內存。

參考文章:
Android-Studio配置構建
淺談Android打包流程
apk打包流程

END!

⑥ Android Studio 沒有 Generate Signed APK

我們在調試APK,直接Build是可以正常生成,沒有報錯,但是當我們將自己的簽名文件加上去,就會報錯。一般情況下,我們可以在build.gradle中的android{}裡面添加一個東西

lintOptions{
checkReleaseBuildsfalse
abortOnErrorfalse
}

詳細

⑦ Android studio怎麼直接對apk簽名

1、對apk的簽名需要把項目導入到Android studio軟體中,進行點擊菜單中「Build」選項,彈出的下拉菜單中的「generate signed APK」.
2、進入到generate signed apk中界面框中,因第一次對apk的簽名,就需要先創建簽名文件鑰匙,點擊」create new「的按鈕。
3、進行選擇鑰匙保存的位置,指定到磁碟的位置,然後在文件昵稱填入,點擊「ok」的選項
4、進入到new key store的界面中,根據界面中提示信息輸入內容信息,輸入完成之後點擊「ok」。
5、鑰匙創建完成之後,進行點擊"next下一步"操作。

6、進入到這個界面中選擇apk生成保存的位置,然後在build type中選擇release的選項,然後點擊「Finish」的選項,這樣就生成到apk的保存路徑中。

⑧ Android studio怎麼生成簽名apk

打開項目以後,點擊項目,選擇 Build 菜單, 然後選擇 Generate Signed APK.

打開生成對話框:
選擇 Create new... 按鈕, 生成新的Key, 彈出新生成對話框:
首先選擇 Key 存儲的路徑.

可能是有BUG, 在彈出的選擇 keystore file 對話框中,需要先輸入 File name, 如 ``, 文件後綴名 保持默認的 jks 不變。然後再改變保存的路徑(否則輸入不了名字).

最後的路徑可能是這樣的: E:\CODE_ALL\02_GIT_ALL\cncounter-Android\key_store\cncounter-android-key.jks

接著輸入密碼, 建議不要太簡單,也不要太復雜。 此處示例的密碼為:
為了簡單起見, 所有密碼都設置為同一個:
有效時間默認25年,以支撐你的整個APP周期。

Country Code (XX) 應該是 CN,
然後點擊OK, 回到生成界面
勾選上記住密碼,然後點擊下一步.

如果彈出輸入密碼保護,可以選擇留空,不使用這種保護。

點擊OK,進入下一步:

選擇 release 是發布版本,選擇 debug 是調試版本。 此處, 選擇 release , 然後點擊完成按鈕即可。

然後會告訴你生成完畢,可以選擇查看:
生成的APK

下次需要生成,只需要從 Build 菜單, 選擇 Generate Signed APK 即可。
因為上次選擇了記住密碼,所以這里不需要記住密碼。

然後繼續即可。

閱讀全文

與androidsignedapk相關的資料

熱點內容
app服務端java源碼 瀏覽:796
電腦用文件夾玩大型游戲 瀏覽:254
安卓耳塞失靈怎麼辦 瀏覽:763
華三交換機保存命令 瀏覽:605
命令方塊怎麼調鍵盤 瀏覽:841
不把密碼存在伺服器上怎麼辦 瀏覽:398
怎麼讓指令方塊的命令消失 瀏覽:543
用單片機做plc 瀏覽:404
雲伺服器進入子目錄命令 瀏覽:795
伺服器機櫃如何配電 瀏覽:578
怎麼刪除iphone資源庫里的app 瀏覽:940
pdf魚 瀏覽:648
單片機pcf8591什麼作用 瀏覽:805
sql命令學院 瀏覽:283
加密軟體在電腦那個盤 瀏覽:988
android獲取外部存儲 瀏覽:573
怎麼查自己家的伺服器地址 瀏覽:858
編程c語言工作好不好 瀏覽:569
單片機焊接地怎麼連接 瀏覽:694
游戲源碼怎麼抓 瀏覽:216