编译SA-MP Mobile竟如此简单?!

编译一份自己的SAMP-Mobile很难吗?让本文带你快速破解!

零.声明

1.个人声明

  • 本文全程均已在Windows 10 x64上测试过,其他系统理论上可以,但部分细节处步骤可能不一致,请自行解决
  • 文中“根目录”一词指本库所在文件夹的绝对路径(如:C:\SAMP-Mobile)
  • 本人不为本项目衍生的任何问题负责
  • 任何人均可使用本文提供的方法,任何人均可进行二次开发和发行,但不可以删除原作者的版权
  • 本人不提供任何有偿或无偿技术支持(说明白了就是别来烦我,别问我乱七八糟的问题,除非写的有问题)

有特殊情况请联系本人 QQ1270329917

特别感谢:IGTA-褪色

2.注意事项

  • 目前不支持中文。中文默认会被转码到俄语或乱码 咋搞呢?用iconv将消息流从UTF8编码转到GBK即可,自己开发去吧
  • 绝大多数服务器都玩不成!别妄图直接拿去开快餐
  • 自带的虚拟键盘只支持英文、数字、俄语,不要妄想搞内置中文输入法了(你能一个人造出一套中文输入法,还用来搞samp?),想支持中文?自己想办法(IGTA的方案是外置一个软件)
  • 打开游戏后闪退?配置文件应该放错位置了,自己研究自己的手机里应该放哪吧 或者你打包/签名出问题了!

一.准备环境

1.需要下载的东西

2.系统环境配置

将本库放到一个固定的位置“根目录”

在环境变量“Path”下分别新增:1.NDK所在目录 2.jdk所在目录下的bin目录 3.根目录\files

二.编译

打开Powershell或者cmd

> cd 根目录\jni
> ndk-build.cmd NDK_PROJECT_PATH=根目录 -B NDK_DEBUG=0

三.解包

> cd 根目录\files
> .\apktool d 根目录\files\build69.apk -o 根目录\files\apk -f

四.打包

先将 根目录\libs\armeabi-v7a\libsamp.so 替换到 根目录\files\lib\armeabi-v7a 目录下(要不然你搞了半天等于啥也没做……)

> cd 根目录\files
> .\apktool b 根目录\files\apk -o 根目录\files\apk\dist\build69.apk -f

五.签名

网上有很多本部分的相关资料,可以参照其他地方的方法

1.生成签名

> chcp 936 # Console GBK(也可以不执行,但部分情况下JDK输出可能是乱码)
> cd 根目录\files
> keytool -genkey -v -keystore sampmobile.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sampmobile
# 接下来请按照提示输入相关信息
> keytool -importkeystore -srckeystore sampmobile.jks -destkeystore sampmobile.jks -deststoretype pkcs12

2.签名

> cd 根目录\files\apk\dist
> jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 根目录\files\sampmobile.jks build69.apk sampmobile

根目录\files\apk\dist\build69.apk 为最终可安装版本

六.手机上的准备

删除原来的GTASA(如有数据包,请提前备份)

安装 根目录\files\apk\dist\build69.apk

恢复数据包

复制 根目录\data 目录内的目录到安卓根目录(大多数手机是这样操作的,部分手机操作不一致)

七.设置

在手机中打开 Android\obb\com.rockstargames.gtasa\files\SAMP\settings.ini,修改[client]段相关信息(例如服务器ip 游戏昵称)

八.愉快的玩♂耍♂

打开手机里的GTA:SA,进入主界面后第二个按键为Multiplayer,点击即可