For starters, this may not work with Android 10 and above so for those phones you may need to downgrade them before trying this.
For starters, this may not work with Android 10 and above so for those phones you may need to downgrade them before trying this. Didn't work on my Nokia 6.1/6 (2018) on Android 10 while worked on my Nokia 6.1/(2018) on Android Oreo. Also worked on my Nokia 5. Gimmicky on the Nokia 9 PV but still works for photos and some apps can be moved. It didn't work on my Nokia 8 Sirocco but I think it will if you downgrade it and try this. Also worked on Nokia 7.1 of an acquaintance of mine. This might work for some phone and may not work for others. It varies from device to device. This is blocked my Google on most phones so only phones where Google hasn't messed up, this will succeed. Like on Nokia 6.1/ 6 (2018) on Android Pie, the process will be a success but anything greater than 4 bytes will get corrupted when moved to the sd card. Also apps on Internal storage will almost take half as much time as the ones on the external storage irrespective of how high quality and which class of sd card is used.
Backup your sd-card and proceed at your own risk. You'll require the latest Java SDK. If you don't already have it, download and install Java SE Development kit. The website is www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. I used version 8u101 for Windows x64.
If you don't already have it, download Android SDK Manager. The website is developer.android.com/studio/index.html. Scroll almost to the bottom where it has "Get just the command line tools" and select android-sdk_rxx.x.x-windows.zip for Windows. When it downloads, extract all to a location where you want to keep the folder. Grab the latest one.
Open the Android SDK folder and run the SDK Manager. (If it fails to run, see question 14504325 in stackoverflow). Follow the instructions on www.howtogeek.com/125769/how-to-install-and-use-abd-the-android-debug-bridge-utility/ to get it up-and-running.
When you have the command prompt open, enter the following:
// HERE YOU GET YOUR DISK ID, SOMETHING LIKE "disk:179,64" - REMEMBER THOSE NUMBERS. YOU'LL GET SOME OTHER NUMBERS, THESE NUMBERS ARE INDEPENDENT AND DON'T DETERMINE ANYTHING JUST USED TO IDENTIFY THE SDCARD OR PARTITION. MY COMPUTER SHOWED THE DISKS AS 179,64, YOUR'S WILL DEFINITELY SHOW SOMETHING ELSE.
sm set-force-adoptable true
// IN NEXT LINE, SIMPLY PUT THOSE NUMBERS AFTER "disk:" AND ALSO AFTER WORD "mixed" TYPE PERCENTAGE OF SPACE LEFT AS EXTERNAL, SO IN MY CASE:
sm partition disk:179,64 mixed 60
// IT TAKES TIME. BE PATIENT. WITH THIS LINE I TRANSFORMED WHOLE EXTERNAL SD INTO 40% OF INTERNAL AND 60% OF EXTERNAL STORAGE. BASICALLY, YOU'RE SETTINGS A QUOTA TO USE MAXIMUM OF 40% AS INTERNAL STORAGE WHILE KEEPING THE REMAINING 60% STORAGE AS QUOTA FOR THE MAXIMUM STORAGE AVAILABLE ON THE SD CARD. INSTEAD OF 'MIXED' YOU CAN ALSO USE 'PRIVATE'. AND CAN USE 100% INSTEAD OF 60% IF YOU WANT TO USE YOUR ENTIRE STORAGE AS INTERNAL STORAGE. IF YOU WANT TO KEEP THE MICROSD CARD PERMANENTLY IN THE SMARTPHONE, YOU CAN NOW PARTITION ALL OF YOUR MEMORY USE 'PRIVATE' BUT YOU'LL NOT BE ABLE TO USE ANOTHER DEVICE TO ACCESS YOUR SD CARD AND WILL REQUIRE TO RE-FORMAT IT. WHILE IF YOU USE 'MIXED' AND USE ONLY SOME% AS INTERNAL STORAGE THEN YOU CAN STILL ACCESS YOUR REMAINING SDCARD ON OTHER DEVICES. I PREFER THIS. AND USING MIXED 100% IS GOOD BUT SOME PHONES DON'T WORK WITH IT AND THE CMD WILL JUST QUIT OUT.
sm set-force-adoptable false
//YOU CAN ALSO CHANGE THE VALUE TO TRUE IF IT DOESN'T WORK FOR YOU WITH FALSE.
NOW DON'T BE SCARED WHEN YOU GO INTO ANDROID SETTINGS AND SEE A LARGE NEGATIVE LONG VALUE INSTEAD OF THE ACTUALLY SIZE OF YOUR SD CARD. IT'S ALRIGHT. YOU CAN'T CHANGE IT BUT IT WON'T BREAK ANYTHING. ALSO ON SOME PHONES IT WILL SHOW ALMOST 100% STORAGE USED ON THE SD CARD. ONLY SOME PHONES SHOW CORRECT STORAGE DATA CORRECTLY. ALSO SOME PHONES WILL ALLOW THE SD CARD TO BE FORMATTED BUT SOME APPS WON'T BE MOVED TO THE SD CARD NO MATTER WHAT YOU DO, LIKE ON MY NOKIA 9 PV LARGE GAMES AND EVERYTHING ARE ON MY SDCARD AND ALL APPS ARE ON MY SDCARD BUT HAPPYMOD APP AND ES FILE EXPLORER WILL NOT BE MOVED. EVERYTIME YOU TRY TO MOVE THEM THEY'LL START MOVING AND GO UP TO A CERTAIN PERCENT AND THEN THE PERCENT STARTS DROPPING AND THEN YOU'LL GET AN 'NOT ENOUGH FREE SPACE ON DRIVE. APP COULDN'T BE MOVED' ERROR.
IN CASE, YOU REMOVE THE SD CARD AND TRY TO REBOOT THEN IT MIGHT CAUSE A BOOTLOOP TO AVOID THAT DON'T REMOVE IT OR SIMPLY REBOOT INTO SAFEMODE.
SOME PHONES WON'T BE ABLE TO INSTALL UPDATES WHEN DOWNLOADED TO THE EXTERNAL SDCARD IN THOSE CASES, REMOVE THE SD CARD AND THEN REBOOT THE PHONE AND DOWNLOAD THE UPDATE TO THE INTERNAL STORAGE AND APPLY THE UPDATE. AFTER THE UPDATE BUT THE SD CARD BACK IN. THIS MAY CAUSE THE LOSS OF THE RECORD OF HAVING EVER USED THE SD CARD AS INTERNAL STORAGE SO KEEP THAT IN MIND AS IT MAY LEAD TO DATA LOSS. USE THE BEST POSSIBLE AND FASTEST SDCARD YOU CAN AFFORD FOR THIS. SINCE I ALSO TRIED WITH A CLASS 6 SDCARD AND IT SHOWS UP AS FORMATTED IN RAW AND WON'T OPEN AND ASK TO BE FORMATTED. FORMAT WILL EITHER FAIL OR YOU'LL GET A READ/WRITE ERROR.
If you now want to use the adopted memory as such, you must also migrate apps and data. This can be done through the storage section of your Android settings menu. Tap the MicroSD card, then move to the top right of the menu and click on Move data. You cannot select this menu item before partitioning. Now, and in the future, downloaded apps are fully written to the MicroSD card. Only system apps and updates use the internal memory. This means that you should never again get error messages due to lack of space if an app update is pending.