馬甲包

開始,初始化代碼文件

從主包remote 倉庫Fork倉庫

相關(guān)命令
git clone -b remote_branch_name--depth 1 remote_url 克隆remote_branch_name的最后一次comment
git fetch --depth 1 origin remote_branch_name 拉取remote_branch_name最后一次comment

修改包名

studio中move package to替換包名,文件路徑,
Run,全局搜索,替換未自動(dòng)替換的包名路徑
查漏修改后run起來,方可進(jìn)行下一步

修改包名2

若上述失敗(文件太過于復(fù)雜)經(jīng)過多次探索和嘗試,ide的替換包名的方法太過于笨重
系統(tǒng)方式暴力修改包結(jié)構(gòu),然后全局替換包名字符串:

直接修改對(duì)應(yīng)的包名,app+module等路徑一定要記得刪除
然后進(jìn)入androidstudio,Ctrl+shift+R,全局查找替換,
如:com.alibaba.aa原包名
搜索,com.alibaba.aa    再更改com.alibaba,因?yàn)槠ヅ錂C(jī)制問題,先替長(zhǎng)再替短
注意:util/SrtingUtils中的getPassword,getPayPassword中,password的md5加密字符串,不改
     Constants中的??APPLICATION_ID_YBB字符串判斷主包?isYBB?別改
混淆文件中的包名記得改

AppUtil.getAppVersion()同步主包:
BaseReqEntity,ReqRecommendConfig,ConfigApi.getRecommendConfig(),BaseApi.signatureString()

加入垃圾代碼

apply plugin引入插件
一(插入activity,xml,value等的插件)二(插入方法接口等的插件)
./gradlew build --info -dry-run查看task是否按照預(yù)期運(yùn)行,
編譯成功,release包反編譯后使用GUI工具查看打包混淆代碼后代碼是否符合預(yù)期

混淆資源

Gradle配置資源不優(yōu)化(具體根據(jù)包體積看效果)

logo,圖片md5替換、接口,各種sdk的key等配置替換等

替換logo,baseurl等,后臺(tái)接口替換,run起來,ok,GUI工具查看打包混淆代碼后代碼是否符合預(yù)期
替換第三方庫的key等,不可使用同一個(gè)key

根據(jù)UI設(shè)計(jì)改UI頁面

提審包

簽名:
keytool -importkeystore -srckeystore oldKey.jks -destkeystore newKey.jks -deststoretype pkcs12
加固(僅國(guó)內(nèi),Google play不允許加固)
馬甲包和主包之間,馬甲包和馬甲包之間,不可有賬號(hào)環(huán)境關(guān)聯(lián)(盡量用4G網(wǎng),熱點(diǎn)注冊(cè)并提交)避免馬甲包對(duì)主包的影響

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容