android70apk
A. Android apk 系統簽名
因工作需要對系統的wifi和乙太網進行配置,需要獲取到系統許可權以後才能進行操作,因此研究了下對apk 進行系統簽名以獲取系統許可權,其實本來打算如果root可以的話直接通過root的方式(設備已經root),後來找了半天發現沒有api進行修改,無奈只能進行系統簽名了,有童鞋知道root方式修改不妨告訴我一下。
這些文件可以問系統廠商獲取,如果是原生系統可以到系統源碼目錄下獲取。
如果報以下的錯誤 ,這時候就用到准備的libconscrypt_openjdk_jni.so 文件
為了檢測我們的應用是否已經簽名成功 可以獲取系統許可權,看看能否獲取到。
結果:
在上一種方式中,我們成功對我們的apk進行了系統簽名,並且能使用系統許可權,但是必須每次打包出apk再進行簽名 對調試很不方便,下面我們可以生成帶有系統簽名的簽名文件,在項目中使用,就不需要每次手動進行簽名。
bubble可以替換為自己喜歡的名稱,這一步要輸入密碼,我嘗試輸入其他不行,只能輸入android。
bubble 可替換為自己喜歡的password和alias
到這里 兩種對app進行系統簽名的方式完成,如有不足,歡迎指出.
B. baidu_android.apk是什麼文件
_android.apk是網路安裝包。
1、APK是AndroidPackage的縮寫,即Android安裝包(apk)。APK文件盒SymbianSis或Sisx的文件格式差不多。
2、通過將APK文件直接傳到Android模擬器或Android手機中,執行並安裝。apk文件和sis一樣,把androidsdk編譯的工程打包成一個安裝程序文件,這個文件的格式為apk。
3、APK文件其實是zip格式的一個壓縮包,但後綴名被修改為apk,通過UnZip解壓後,就可以看見Dex文件,Dex是DalvikVMexecutes的全稱,即AndroidDalvik執行程序,並非JavaME的位元組碼而是Dalvik位元組碼。
4、在Android平台中dalvikvm的執行文件被打包為apk格式,最終運行時就會被載入器解壓然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問,擁有很多限制,將apk文件傳到/system/app文件夾下會發現執行是不受限制的。
5、安裝的文件不是這個文件夾,而在androidrom中系統的apk文件默認會放入這個文件夾,擁有著root許可權。
C. 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
D. 寫好的android項目怎麼打包成Apk文件
1.)生成keystore
按照下面的命令行 在C:Program FilesJavajdk1.6.0_10in>目錄下,輸入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵 都算密碼。
命令執行後會在C:Program FilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1
最終生成的apk文件
E. 反編譯修改Android apk的版本號
准備工作完畢後,開始反編譯apk。
1.將你要反編譯的apk放到apktoo.bat的同一文件夾下,然後cd到這個目錄,執行以下命令:
其中debug.apk為你要反編譯的apk的名字,替換一下即可
其中dst.apk為打包後生成的apk。
其中 debug.keystore 為你自己的簽名文件, debug 為簽名文件的 keyAlias 。
然後輸入密碼就行, dst_signed.apk 為簽名後生成的apk文件
執行完後,出現如下命令即代表成功
F. Android apk 安裝相關的幾個目錄
/data/local/tmp 目錄是轉為android studio 安裝應用程序保留的目錄
android studio 安裝apk時 首先將apk push 到/data/local/tmp目錄下
如,翻譯機的/data/app/com.sogou.teemo.translate.launcher 如下:
Android 設備的CPU類型通常分以下幾種
以64位為app為例,/data/app/package/lib/arm64目錄如下:
翻譯機/data/data/com.sogou.teemo.translate.launcher 如下: