Xcode制作Toolchains混淆.

這里以修改最新的ndk r18為例,老的ndk版本比這更容易都在ndk-bundle/toolchains里放著需要修改的文件。

#復(fù)制ndk的toolschain里的llvm
cp -r ndk-bundle/toolchains/llvm ndk-bundle/toolchains/ollvm
#刪除prebuilt文件夾下的文件夾的bin和lib64,prebuilt文件夾下根據(jù)系統(tǒng)不同命名也不同
rm -rf ndk-bundle/toolchains/ollvm/prebuilt/darwin-x86_64/bin
rm -rf ndk-bundle/toolchains/ollvm/prebuilt/darwin-x86_64/lib64
#把我們之前編譯好的ollvm下的bin和lib移到我們剛才刪除bin和lib64的目錄下
mv build/bin ndk-bundle/toolchains/ollvm/prebuilt/darwin-x86_64/
mv build/lib ndk-bundle/toolchains/ollvm/prebuilt/darwin-x86_64/
#復(fù)制ndk-bundle?/?build?/?core?/?toolchains的文件夾,這里根據(jù)自己對CPU架構(gòu)的需求自己復(fù)制然后修改
cp -r ndk-bundle?/?build?/?core?/?toolchains/arm-linux-androideabi-clang? ndk-bundle?/?build?/?core?/?toolchains/arm-linux-androideabi-clang-ollvm
例如
#復(fù)制ndk的toolschain里的llvm
cp -r android-ndk-r18b/toolchains/llvm android-ndk-r18b/toolchains/ollvm
#刪除prebuilt文件夾下的文件夾的bin和lib64,prebuilt文件夾下根據(jù)系統(tǒng)不同命名也不同
rm -rf android-ndk-r18b/toolchains/ollvm/prebuilt/darwin-x86_64/bin
rm -rf android-ndk-r18b/toolchains/ollvm/prebuilt/darwin-x86_64/lib64
#把我們之前編譯好的ollvm下的bin和lib移到我們剛才刪除bin和lib64的目錄下
mv build/bin android-ndk-r18b/toolchains/ollvm/prebuilt/darwin-x86_64/
mv build/lib android-ndk-r18b/toolchains/ollvm/prebuilt/darwin-x86_64/
#復(fù)制android-ndk-r18b?/?build?/?core?/?toolchains的文件夾,這里根據(jù)自己對CPU架構(gòu)的需求自己復(fù)制然后修改
cp -r android-ndk-r18b?/?build?/?core?/?toolchains/arm-linux-androideabi-clang? 
     android-ndk-r18b?/?build?/?core?/?toolchains/arm-linux-androideabi-clang-ollvm


最后把arm-linux-androideabi-clang-ollvm里的setup.mk文件進行修改

30行code 
TOOLCHAIN_NAME := ollvm
TOOLCHAIN_ROOT := $(call get-toolchain-root,$(TOOLCHAIN_NAME))
TOOLCHAIN_PREFIX := $(TOOLCHAIN_ROOT)/bin

config.mk里是CPU架構(gòu),剛才是復(fù)制出來的所以不用修改,但如果要添加其他的自定義架構(gòu)需要嚴格按照格式規(guī)范命名最初的文件夾,如mips的需要添加文件夾mipsel-linux-android-clang-ollvm,setup.mk和剛才的修改一樣即可。

項目中配置

到了項目里還需要修改兩個文件:
在Android.mk 中添加混淆編譯參數(shù)?android-ndk-r18b? ? ?sources? ? ?third_party? ? ?googletest?-Android.mk

LOCAL_CFLAGS += -mllvm -sub -mllvm -bcf -mllvm -fla

Application.mk中配置NDK_TOOLCHAIN_VERSION
?android-ndk-r18b? ? ?sources? ? ?third_party? ? ?vulkan? ? ?src? ? ?build-android? ? ?jni?-Application.mk

#根據(jù)需要添加
APP_ABI := x86 armeabi-v7a x86_64 arm64-v8a mips armeabi mips64
#使用剛才我們做好的編譯鏈
NDK_TOOLCHAIN_VERSION := ollvm

Xcode10之后的
創(chuàng)建XCode的toolchain然后把生成的文件夾放到/Library/Developer/下

cd build  ##cd build路徑為/Users/用戶名/build.
sudo make install-xcode-toolchain
mv /usr/local/Toolchains  /Library/Developer/

Toolchains下的.xctoolchain文件就是一個文件夾,進去修改info.plist

<key>CFBundleIdentifier</key>
<string>org.llvm.7.0.0svn</string> -> <string>org.ollvm-swift.5.0</string>

修改完在XCode的Toolchains下就會顯示相應(yīng)的名稱

然后如圖打開XCode選擇Toolchaiins
在Xcode-項目中Build Setting - Other C Flags添加混淆參數(shù).

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

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