- apktool
zipalign
andapksigner
and from the Android SDK Build Toolskeytool
from a Java JRE or JDK
-
Get the APK of the current MS Teams app (e.g. by copying it from your phone or downloading from APKMirror). These instructions were tested with version
1416/1.0.0.2022394701
, and assume it is saved asteams.apk
. -
Extract the APK:
apktool -r d teams.apk
-
Find the
WebViewAuthorizationFragment
class. In the current version it is undersmali_classes3/com/microsoft/identity/common/internal/providers/oauth2/WebViewAuthorizationFragment.smali
. -
In this class, in the
setUpWebView
function, the User-Agent for the WebView is set like this:invoke-virtual {v0, p1}, Landroid/webkit/WebSettings;->setUserAgentString(Ljava/lang/String;)V
Right before this, add the following line to override the User-Agent:
const-string p1, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
(or another recent desktop User-Agent)
-
In theThis seems to be no longer necessary in the newest version of the Teams app. Yay! 🥳res/raw
directory, in each of the filesmsal_config.json
,msal_config_opt_disabled.json
,msal_enterprise_config.json
andmsal_enterprise_config_opt_disabled.json
, set thebroker_redirect_uri_registered
setting tofalse
. This is needed because the modified APK will be signed with a different key. -
Rebuild the APK:
apktool b teams -o teams_mod.apk
If you need to install the app alongside the official Teams app, change the package name now and rename conflicting content providers in the Manifest (e.g. using this tool):
git clone [email protected]:johan12345/ApkRename.git ApkRename/apkRename.sh teams_mod.apk com.microsoft.teams.mod!
-
Zipalign:
zipalign -f -p 4 teams_mod.apk teams_mod_zipalign.apk
-
Sign the APK:
keytool -genkey -keystore keys.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias Teams apksigner sign --ks keys.keystore --out teams_mod_signed.apk teams_mod_zipalign.apk
-
Install the resulting
teams_mod_signed.apk
on your Android device. If you did not change the package name above, you will need to uninstall the official version of Teams first due to the different signature.
Thanks, exactly what I was looking for. However, after installing that signed APK, the App crashes on my Samsung S21 with Android 14 as soon as started.
I used the apktools that you linked, however it seems with my Linux Mint there are more recent packages. Should I use them?
Keytool is also asking for -keyalg parameter. I gave it
-keyalg RSA -keysize 2048
Edit: Got the build process working with a recent version of apktools.
However, when trying to sign in, after entering my email address it gives me "Unfortunately there are problems, please try again..."