中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

阿里巴巴吧做網(wǎng)站關(guān)鍵詞排名優(yōu)化網(wǎng)站

阿里巴巴吧做網(wǎng)站,關(guān)鍵詞排名優(yōu)化網(wǎng)站,戀愛網(wǎng)站建設(shè),哈爾濱網(wǎng)站建設(shè)排簡介 現(xiàn)在apk都需要簽名,Flutter做的項目官方規(guī)定編譯apk必須簽名。 簽名的好處: 應(yīng)用來源驗證: 應(yīng)用簽名允許Android系統(tǒng)驗證應(yīng)用的來源。每個應(yīng)用都使用開發(fā)者的私鑰進(jìn)行簽名,而應(yīng)用的簽名信息包含在應(yīng)用的APK文件中。當(dāng)用戶嘗…

簡介

現(xiàn)在apk都需要簽名,Flutter做的項目官方規(guī)定編譯apk必須簽名。
簽名的好處:

  1. 應(yīng)用來源驗證: 應(yīng)用簽名允許Android系統(tǒng)驗證應(yīng)用的來源。每個應(yīng)用都使用開發(fā)者的私鑰進(jìn)行簽名,而應(yīng)用的簽名信息包含在應(yīng)用的APK文件中。當(dāng)用戶嘗試安裝應(yīng)用時,系統(tǒng)會檢查應(yīng)用的簽名,以確保它與系統(tǒng)中已知的相匹配。
  2. 應(yīng)用完整性驗證: 應(yīng)用簽名有助于確保應(yīng)用在傳輸過程中沒有被篡改。如果應(yīng)用在傳輸過程中被修改,其簽名將失效,系統(tǒng)會拒絕安裝或運(yùn)行該應(yīng)用。
  3. 權(quán)限聲明: 應(yīng)用簽名也與應(yīng)用的權(quán)限聲明相關(guān)。Android系統(tǒng)使用應(yīng)用簽名來確保應(yīng)用對敏感系統(tǒng)資源和API的訪問受到控制。如果應(yīng)用的簽名與其聲明的權(quán)限不匹配,系統(tǒng)會拒絕授予應(yīng)用相應(yīng)的權(quán)限。
  4. 防止重放攻擊: 應(yīng)用簽名可以防止重放攻擊,因為攻擊者無法將已簽名應(yīng)用的部分替換為其他內(nèi)容而不影響簽名的有效性

相關(guān)文檔

Android標(biāo)準(zhǔn)簽名key文件位于源碼的如下位置:/build/target/product/security/README
這個README 給出了相關(guān)說明:

For detailed information on key types and image signing, please see:https://source.android.com/devices/tech/ota/sign_builds.htmlThe test keys in this directory are used in development only and should
NEVER be used to sign packages in publicly released images (as that would
open a major security hole).key generation
--------------The following commands were used to generate the test key pairs:development/tools/make_key testkey  '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key shared   '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key media    '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'signing using the openssl commandline (for boot/system images)
--------------------------------------------------------------1. convert pk8 format key to pem format% openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem2. create a signature using the pem format key% openssl dgst -binary -sha1 -sign testkey.pem FILE > FILE.sigextracting public keys for embedding
------------------------------------dumpkey.jar is a Java tool that takes an x.509 certificate in PEM format as
input and prints a C structure to standard output:$ java -jar out/host/linux-x86/framework/dumpkey.jar build/target/product/security/testkey.x509.pem{64,0xc926ad21,{1795090719,2141396315,950055447,2581568430,4268923165,1920809988,546586521,3498997798,1776797858,3740060814,1805317999,1429410244,129622599,1422441418,1783893377,1222374759,2563319927,323993566,28517732,609753416,1826472888,215237850,4261642700,4049082591,3228462402,774857746,154822455,2497198897,2758199418,3019015328,2794777644,87251430,2534927978,120774784,571297800,3695899472,2479925187,3811625450,3401832990,2394869647,3267246207,950095497,555058928,414729973,1136544882,3044590084,465547824,4058146728,2731796054,1689838846,3890756939,1048029507,895090649,247140249,178744550,3547885223,3165179243,109881576,3944604415,1044303212,3772373029,2985150306,3737520932,3599964420},{3437017481,3784475129,2800224972,3086222688,251333580,2131931323,512774938,325948880,2657486437,2102694287,3820568226,792812816,1026422502,2053275343,2800889200,3113586810,165549746,4273519969,4065247892,1902789247,772932719,3941848426,3652744109,216871947,3164400649,1942378755,3996765851,1055777370,964047799,629391717,2232744317,3910558992,191868569,2758883837,3682816752,2997714732,2702529250,3570700455,3776873832,3924067546,3555689545,2758825434,1323144535,61311905,1997411085,376844204,213777604,4077323584,9135381,1625809335,2804742137,2952293945,1117190829,4237312782,1825108855,3013147971,1111251351,2568837572,1684324211,2520978805,367251975,810756730,2353784344,1175080310}}This is called by build/make/core/Makefile to incorporate the OTA signing keys
into the recovery image.

四種key

可以看到在Android系統(tǒng)中,有四種常見的簽名密鑰,分別是testkey、platform、shared和media。每個密鑰用于簽署不同類型的應(yīng)用或組件,具有不同的權(quán)限和用途。

  1. testkey:
    類型: 開發(fā)和測試使用。
    特點(diǎn): 通常用于開發(fā)和測試階段,不是用于生產(chǎn)環(huán)境。應(yīng)用使用 testkey 簽名時,系統(tǒng)會將其標(biāo)記為測試版本,通常會有一些限制,例如無法安裝在未解鎖的設(shè)備上。
  2. platform:
    類型: Android平臺的系統(tǒng)應(yīng)用。
    特點(diǎn): 用于簽署Android平臺的系統(tǒng)應(yīng)用,這些應(yīng)用是由設(shè)備制造商提供的預(yù)裝應(yīng)用。這種簽名允許應(yīng)用訪問系統(tǒng)的一些敏感權(quán)限和功能,而這些權(quán)限通常不允許其他應(yīng)用獲得。
  3. shared:
    類型: 平臺的共享系統(tǒng)庫。
    特點(diǎn): 主要用于簽署Android平臺上的共享系統(tǒng)庫,這些庫可以由多個應(yīng)用共享。共享庫可以提供一組通用的功能,供系統(tǒng)上的多個應(yīng)用使用。這使得庫可以更好地重用,減少重復(fù)的代碼。
  4. media:
    類型: 用于簽署媒體庫。
    特點(diǎn): 主要用于簽署Android平臺上的媒體庫,這些庫提供音頻和視頻處理功能。這樣的簽名允許庫訪問系統(tǒng)上的音頻和視頻資源,這對于多媒體應(yīng)用和功能非常重要。

應(yīng)用程序的Android.mk中有一個LOCAL_CERTIFICATE字段,由它指定哪個key簽名,未指定的默認(rèn)用testkey。
Android.bp中為:certificate: “platform”。build/target/product/security目錄下查看:

在這里插入圖片描述
.pk8代表私鑰,.x509.pem公鑰,它們都是成對出現(xiàn)。

生成key

從README可知,key是通過development/tools目錄下的make_key腳本生成的,腳本需要傳入兩個參數(shù)。其中第一個參數(shù)是key的名字,我們可以不修改,使用aosp默認(rèn)的4個key的名字;第二個參數(shù)即是具體的一些屬性,此為key真正的關(guān)鍵(我們需要修改的部分),下面對第二個參數(shù)的一些具體屬性做出分析解釋:

C> Country Name (2 letter code) #國家名稱(2 個字母代碼)
ST> State or Province Name (full name) #州或省名稱(全名)
L> Locality Name (eg, city) #地區(qū)名稱(例如,城市)
O> Organization Name (eg, company) #組織名稱(例如,公司)
OU> Organizational Unit Name (eg, section) #組織單位名稱(例如,部分)
CN> Common Name (eg, your name or your server’s hostname) #通用名稱(例如,您的姓名或服務(wù)器的主機(jī)名)
emailAddress —> Contact email address #聯(lián)系電子郵件地址

因此,在生成key 的時候我們只需要AOSP的根目錄使用以下命令,注意替換面的內(nèi)容為自己的信息。

  development/tools/make_key testkey  '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key shared   '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'development/tools/make_key media    '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'

值得注意的是用make_key生成key的過程中會提示輸入password,可以不輸入,直接enter。
生成之后我將這些key都放在了vendor/xxxx/android-certs/releasekey路徑下

驗證key

在生成key后,再使用OpenSSL的工具來驗證一下生成的key是否正常進(jìn)入到/build/target/product/security目錄,執(zhí)行如下命令:

openssl x509 -noout -subject -issuer -in platform.x509.pem 

執(zhí)行后正確輸出你的參數(shù)信息即可

修改系統(tǒng)默認(rèn)簽名key

在上面提到如果apk中的編譯選項LOCAL_CERTIFICATE沒有設(shè)置的話,就會使用默認(rèn)的testkey作為簽名key,我們可以修改成自己想要的key,按照上面的步驟制作一個releasekey。

  1. 在build/make/core/Makefile中增加如下內(nèi)容
--- a/build/make/core/Makefile
+++ b/build/make/core/Makefile
@@ -328,6 +328,12 @@ BUILD_KEYS := test-keyselseBUILD_KEYS := dev-keysendif
+
+# Here is a customization of which key signature to use
+ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),vendor/xxxx/android-certs/releasekey)
+BUILD_KEYS := release-keys
+endif
+BUILD_VERSION_TAGS += $(BUILD_KEYS)BUILD_VERSION_TAGS := $(subst $(space),$(comma),$(sort $(BUILD_VERSION_TAGS)))
  1. 在具體產(chǎn)品的mk中增加如下內(nèi)容,vendor/xxxx/android-certs/releasekey為我存放各種key的路徑
--- a/device/amlogic/ohm/ohm.mk
+++ b/device/amlogic/ohm/ohm.mk
@@ -424,3 +424,7 @@ endifPRODUCT_PACKAGES += \Settings \SettingsIntelligence
+
+# android sign key
+PRODUCT_DEFAULT_DEV_CERTIFICATE := vendor/xxxx/android-certs/releasekey
+
  1. 修改/system/sepolicy/prebuilts/api/30.0/private/keys.conf下的內(nèi)容
--- a/system/sepolicy/prebuilts/api/30.0/private/keys.conf
+++ b/system/sepolicy/prebuilts/api/30.0/private/keys.conf
@@ -22,7 +22,7 @@ ALL : $DEFAULT_SYSTEM_DEV_CERTIFICATE/shared.x509.pem# Example of ALL TARGET_BUILD_VARIANTS[@RELEASE]
-ENG       : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
-USER      : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
-USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
+ENG       : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
+USER      : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
+USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
4. 修改/system/sepolicy/private/keys.conf下的內(nèi)容
--- a/system/sepolicy/private/keys.conf
+++ b/system/sepolicy/private/keys.conf
@@ -22,7 +22,7 @@ ALL : $DEFAULT_SYSTEM_DEV_CERTIFICATE/shared.x509.pem# Example of ALL TARGET_BUILD_VARIANTS[@RELEASE]
-ENG       : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
-USER      : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
-USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem
+ENG       : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
+USER      : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
+USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
  1. 驗證打包編譯好的系統(tǒng)使用的簽名
    編譯完成之后也可以在build.prop中查看到變量:
adb root
adb remount
adb shell
cd system
cat build.prop

會看到一行ro.build.tags=release-keys。
6. 生成 generate_verity_key
首先:

make generate_verity_key (mmm system/extras/verity/)

然后執(zhí)行:

out/host/linux-x86/bin/generate_verity_key -convert build/target/product/security/verity.x509.pem  verity_key

重命名verity_key.pub為verity_key拷貝至build/target/product/security/ 目錄,替換相應(yīng)的 key。
根據(jù)以上步驟把生成的相應(yīng)的key替換系統(tǒng)中build/target/product/security/ 目錄下的key后重新編譯系統(tǒng),即可使用自己生成的系統(tǒng)簽名key。

系統(tǒng)key文件生成keystore

生成keystore文件主要是給外部apk開發(fā)簽名使用的;
以常用的platform簽名為例:
如果之前沒有生成platform.pem文件,現(xiàn)在可以執(zhí)行以下命令生成:

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.pem -nocryp

生成platform.p12文件,設(shè)置對應(yīng)的密碼和alias名:([yourname]為自定義的aliasname,回車之后輸入密碼)

openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.pk12 -name [yourname]

生成platform.keystore:(需要JDK8以上版本,使用JDK8會報錯,[yourname]為自定義的aliasname,回車之后輸入密碼,[password]為上一步輸入的密碼)

keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [password] -alias [yourname]

最終的platform.keystore即為我們所要的keystore。

AndroidStudio導(dǎo)入生成的keystore文件

將生成的platform.keystore放在AndroidStudio創(chuàng)建的項目的app/路徑下
如圖編輯build.gradle文件:

android {signingConfigs {main {storeFile file("platform.keystore") //keystore文件路徑storePassword "password"  //密鑰密碼keyAlias "yourname"  //key別名keyPassword "password"  //key密碼}}buildTypes {debug {minifyEnabled falsesigningConfig signingConfigs.mainproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}release {minifyEnabled falsesigningConfig signingConfigs.mainproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}

之后clean peoject之后重新build apk并且install,apk即可擁有platform簽名。

將編譯好的apk進(jìn)行系統(tǒng)簽名

首先確認(rèn)你的/build/make/target/product/security/目錄下有.pem和.pk8的簽名文件,然后確認(rèn)有簽名工具prebuilts/sdk/tools/lib/signapk.jar
然后將你要簽名的apk放在在AOSP根目錄使用以下命令,替換app.apk為你的apk名,替換app_signed.apk為你想要簽完名的apk的名字。

java -Djava.library.path="prebuilts/sdk/tools/linux/lib64" -jar ./prebuilts/sdk/tools/lib/signapk.jar ./build/make/target/product/security/platform.x509.pem ./build/make/target/product/security/platform.pk8 app.apk app_signed.apk

參考

生產(chǎn)key:
Android系統(tǒng)簽名生成&Studio導(dǎo)入系統(tǒng)keystore
簽名key:
通過Android源碼對apk進(jìn)行簽名

http://www.risenshineclean.com/news/52544.html

相關(guān)文章:

  • wordpress foxpay企業(yè)站seo報價
  • 虛擬主機(jī)能干什么優(yōu)化網(wǎng)站打開速度
  • 確保網(wǎng)站地址沒有做301跳轉(zhuǎn)新網(wǎng)站怎么做推廣
  • 喬拓云智能建站官網(wǎng)登錄入口廈門關(guān)鍵詞排名提升
  • 網(wǎng)站ie不兼容如何開發(fā)網(wǎng)站
  • 唐山市住房城鄉(xiāng)建設(shè)部網(wǎng)站主頁營業(yè)推廣策劃
  • 朝陽網(wǎng)站建設(shè)seo是什么技術(shù)
  • 網(wǎng)站建設(shè)好的圖片seo優(yōu)化專員工作內(nèi)容
  • 網(wǎng)站建設(shè)的具體過程網(wǎng)絡(luò)營銷崗位職責(zé)和任職要求
  • wordpress搜索引擎源碼深圳seo招聘
  • 做配音任務(wù)的網(wǎng)站百度搜索推廣費(fèi)用
  • 免費(fèi)雙語網(wǎng)站模板如何把網(wǎng)站推廣
  • jsp網(wǎng)站購物車怎么做seo外鏈工具軟件
  • 濟(jì)南個人網(wǎng)站建設(shè)系統(tǒng)優(yōu)化軟件哪個最好的
  • 資訊網(wǎng)站模板周口seo公司
  • 物流網(wǎng)站建設(shè)與管理長沙網(wǎng)站策劃
  • 網(wǎng)上備案查詢seo自然搜索優(yōu)化排名
  • wordpress怎么新建欄目seo推廣排名公司
  • 在哪個網(wǎng)站做流程圖比較好看軟件開發(fā)網(wǎng)
  • 網(wǎng)站建設(shè)采購公告友情鏈接網(wǎng)
  • 基于web的網(wǎng)站開發(fā)技術(shù)路線seo優(yōu)化的基本流程
  • 做網(wǎng)上推廣網(wǎng)站免費(fèi)制作網(wǎng)站app
  • 分享類網(wǎng)站源碼軟文營銷的步驟
  • 洞口做網(wǎng)站推薦seo優(yōu)化服務(wù)商
  • 在家做兼職的比較靠譜的網(wǎng)站青島網(wǎng)站建設(shè)制作
  • WordPress文章生成海報代碼seo推廣策略
  • 好的專題網(wǎng)站鏈接生成器
  • 做兼職的那個網(wǎng)站靠譜google國際版入口
  • 網(wǎng)上開店營業(yè)執(zhí)照怎么辦理百度網(wǎng)站優(yōu)化排名
  • 長沙做網(wǎng)站哪里好2021小說排行榜百度風(fēng)云榜