So out of curiousity I backed up all of my apps using titanium backup and installed the new MIUI Rom based on ICS. It kept crashing because for some reason the internal storage filled up. Now I re-installed CM7.1, but my internal storage is again almost full.
My question is, what can I do? I moved ALL my apps to my SD card before I even installed MIUI and before I installed MIUI, I had 170mb free. Actually while typing this I realized that I guess MIUI didn't remove CM7 when it installed or something... hmm. Anyway any help is appreciated, and be gentle this is my first post.
Also android.process.acore keeps stopping.
did you wipe data/factory reset,cache and dalvik cache atleast 3 times before flashing new rom???
Sent from my Nexus One using Tapatalk
Do it 4x, just to be sure
Each apk (program) on your system has a corresponding entry in the dalvik-cache that gets generated from the .apk. If your storage (/data) filled up things are going to be broken in all sorts of ways, including the inability to make the dalvik caches. Since you didn't format between ROMs, you'll also run into permission issues and settings that don't make sense in the new ROM. Cyanogen uses an alternate location (/cache) for the dalvik-cache for system apps, I don't know if MIUI does, but that could be some of the difference in space. Duplicating data for the same .apks in different ROMs could've also filled up your space. It's best to format all the phone partitions to not worry about this stuff. Usually you're safe not formatting /sdcard, but some ROMs are picky. Some ROM install scripts don't format /system and that leads to BIG headaches. If you format all the partitions, then you don't need to worry about clearing user data/battery stats/dalvik-cache because that was already handled when you formatted the storage that contained that data.
tl;dr: Fix permissions after installing a new ROM. If the old and new ROMs are different enough, everything will still be broken because you made the android gods angry. Sacrifice (format) /system, /data, and /cache (and sd-ext if you have it) *before* installing the new ROM and things should be fine.
Haven't used MIUI for awhile, but didn't think it had an ICS version. There is one in XDA, but it is not stable and I think requires blackrose hboot and differnet partition sizes for hboot. It also runs a2sd on reboot i think?
CM7 uses Dark Tremor beta4, that's what I use. It needs flashed after rom and scripts run to move apps. Check out their site
As suggested format all including system and format sd card with sdformatter, full erase and size adjustment on and set up 1gb ext 0 swap
copy sdcard and have a good nandroid first
rugmankc said:
Haven't used MIUI for awhile, but didn't think it had an ICS version. There is one in XDA, but it is not stable and I think requires blackrose hboot and differnet partition sizes for hboot. It also runs a2sd on reboot i think
Click to expand...
Click to collapse
MIUI has both blackrose and non blackrose version of ICS
Sent from my Nexus One using Tapatalk
right, but one is unstable and he can't keep his ics partition if flashing non ics one
I've tried the latest versions and both br and non-br ones seemed have problem with data connectivity. Some others have experienced the same. Thought the dev's investigating it. But, previous version, i.e. 2.3.2, worked fine.
Try non-br 2.3.2 with 185/85/166 partition layout, that was great.
Sent from my Nexus One
Having similar issues with ICS MiUI which really seems rather unstable (v2.3.2), and going to flash the latest update from a few days ago (v2.3.9).
Any suggestions on how to deal with some of the stock MiUI "bloatware" that comes with it and seems stuck on the system ROM? A2SD is supposed to be enabled, but unless stuff I dowload off market/play or restore is deemed systems apps, which I doubt is the case, I can't seem to choose to move them to SD card or in this case the "USB Storage" (Sorry, my postcount's too low to post on the actual MiUI Dev thread)
Also, as a sidetrack, does anyone know how best I can sieve through my contacts storage/DB? recently I think i might've accidentally synched with my FB countacts and it seems to have bloated up to 16-18+Mb which is alot from the previous 10-12Mb or less from what I recall. Is there an app or something to help 'manage" it better or do I have to manually go through and get rid of excess contact info on the phone or from my Google contacts list?
Thanks in advance for any advice you guys might have.
Would someone validate my partitioning idea before I spend a bunch of time mucking about trying to make it work?
Some background: I am using a Nexus One with Evervolv/texasice's ICS ROM. The N1 has a small permanent memory, so even with the recommended partitioning, the system partition has only a few MiB free and the data partition is just over 200 MiB. So texasice has a re-written a2sd which has the ability to mount an ext4 partition on the SD card as the data partition (I don't know if this feature is specific to his rewrite or if this is a common thing). It works ok with a Class 10 card, although it's still a little slower than I might like and I get ANRs even for system apps.
With the xdata feature enabled, the >200MB data partition in the memory is wasted space, so I was thinking about re-partitioning to make the system partition most of the 400+ MB of memory and then using Titanium Backup to selectively move apps from the xdata partition to system, with its "Convert to system app" and also integrate the Dalvik cache into the system partition.
Does anyone see a problem with this plan? Will it work? Why have I not seen anyone else talking about doing it?
Thanks!
Wil
My background, in case that helps you gauge your response: I have 15+ years of experience with Linux systems administration & development, including some work with embedded systems, but am still very unfamiliar with the Android userland.
Works fine
So I went ahead and tried it--410 MB for system partition and then I used TitantiumBackup's "Integrate sys Dalvik into ROM" to move the Dalvik cache for system apps into the ROM--it worked fine and things are a bit snappier. I also converted some of my most-used apps to be system apps and get noticeably improved response times. One thing to note is that you should re-run the integration after converting an app to a system app because it doesn't do that automatically.
I am fairly confident that my observation of improvement is accurate, despite the lack of quantitative data and despite the fact that I upgraded the ROM from a2 to a4 at the same time--I ran several of the apps before converting them to system apps and then again afterwards (and after a reboot).
wcooley said:
So I went ahead and tried it--410 MB for system partition and then I used TitantiumBackup's "Integrate sys Dalvik into ROM" to move the Dalvik cache for system apps into the ROM--it worked fine and things are a bit snappier. I also converted some of my most-used apps to be system apps and get noticeably improved response times. One thing to note is that you should re-run the integration after converting an app to a system app because it doesn't do that automatically.
I am fairly confident that my observation of improvement is accurate, despite the lack of quantitative data and despite the fact that I upgraded the ROM from a2 to a4 at the same time--I ran several of the apps before converting them to system apps and then again afterwards (and after a reboot).
Click to expand...
Click to collapse
Your experimental is interesting so, if you don't mind, posting your procedures and steps for other members to review. Have you tried to contact Texasice or any developer of your findings?
It just sucks that with most scripts you can't choose which apps you would like to move to sd-ext. I believe timbit made such script for samuaz' MedroidMod, and he would bring out a standalone version, but haven't heard anything about that since Donationgate..
Yep I requested that from Timbit a while ago and new did indicate that he'd consider it.
Sent from my Nexus One using XDA
Taken from CM12 thread as this started to become off-topic. The issue I'm trying to address is how to stuff a huge Lollipop ROM directly into internal storage, without creating a virtual slot, to increase system performance and have overall cleaner solution. Original inspiration: @Mentor.37's custom Safestrap for unused partitions, which has way too small /data for me unfortunately. (explanation)
sd_shadow said:
Septfox said:
This in mind, is there any way to repartition the internal (stock) storage to decrease the size of /cache/ and create a larger /data/ partition, or is it not possible without modifying the bootloader?
Click to expand...
Click to collapse
Code for mounting the unused preinstall and webtop partitions to SD storage http://forum.xda-developers.com/showthread.php?p=59253593
Click to expand...
Click to collapse
This allows you to mount the partitions either as a new storage or to a specific directory only, in other words it does not merge the storages, just adds a mount point next to (or possibly if modified a bit on the top of) other storage. While this may be useful for taking some inherent load off /storage/sdcard0/ (i.e. mounting /dev/block/webtop to /storage/sdcard0/Downloads) for people not swapping their sdcards, it doesn't help in Septfox's intention of enlarging /data/.
I face the same problem as Septfox: I'd love to use the storage intended for running system for it, not virtually mounted storages created in the storage intended for storing media and support data. However, the outline of the storage is intended for way older and less robust system so even the /system/ is not quite enough (667 MB, which tightly fits CM12 with a small GApps package) and /data/ is also not enough for heavier use (3.22 GB). Therefore I would like to merge it with currently unused partitions: maybe join preinstall to system and webtop to data, making both big enough.
One alternative would be to mount the 1.4 GB webtop as /data/app, which currently makes about 2/5 of occupied space of my /data. Is this possible? At which point of system startup is the script in /system/etc/init.d executed (is it done by Safestrap or the ROM itself?), and at which point might the system first need to access /data/app that contains the APKs of user-installed apps? All the really needed stuff (compiled executables) is in the /data/dalvik-cache, right? Here I'm on a really thin ice, don't know much about Android's architecture, so sorry if this is a major bullsh*t - just throwing my idea in Technically what I'm talking about is such modification of the script:
Code:
#!/system/bin/sh
mount -o rw,remount /data # Not too sure about this
# - depending on whether /data is already rw or not.
# For that I would need to know when is the script
# executed. I'm almost sure this is not necessary
# though. In original script this was done to allow
# writing into /storage/.
mkdir /data/app
#mount -o ro,remount / - unnecessary, see above
#mount -t ext3 /dev/block/preinstall /storage/preinstall
# I don't see any use for small preinstall partition.
mount -t ext4 /dev/block/webtop /data/app
chmod 777 /data/app # not sure about this either,
# probably should be 771
Clean version:
Code:
#!/system/bin/sh
mount -o rw,remount /data # Unnecessary?
mkdir /data/app
mount -t ext4 /dev/block/webtop /data/app
chmod 777 /data/app # Possibly 771 instead.
Is that possible to run, or will it bootloop, what do you think?
Even better IMO would be to delete preinstall and webtop and shrink the Stock data down to maybe 200 MB so the original Stock system is still present, preventing the phone from bricking and accommodating Safestrap. The remaining space could be divided between Safe system (say 800 MB) and Safe data (over 4 GB). Are we able to do this somehow, maybe by customizing Safestrap a bit more? Or are partitions in /dev/block locked by bootloader? Also are all these and Internal storage located on the same physical chip, or are there two separate memories in the D4? Attached proposal of repartitioned layout Sizes taken from here and here.
Developers and experienced users, I would love to hear your opinion, mainly on whether repartitioning internal storage or at least mounting webtop to /data/app could work on D4. Thanks!
Addition to the original post:
I have a spare D4 with shattered screen and not working SIM slot that I bought for spare parts. Apart from GSM (or telephony altogether? I didn't try, as only option would be emergency call which I don't want to abuse, and we don't have CDMA networks here) it works fine though. I can try meddling with formatting/partitioning - it won't be too big deal if it gets bricked beyond possibility of SBF restore.
Replies so far, taken from the original CM12 thread:
sd_shadow said:
I don't think repartitioning is possible without high risk of hard bricking the device, and yes the locked bootloader does limit what can be done.
This is quite off topic, and you should start a new thread if you are going to continue.
Click to expand...
Click to collapse
Good call, started new thread
lucize said:
tried to change the type of preinstall partition and the device would boot into fastboot: (invalid cg hab (cg: ebr, status: 0x0056)
so a recovery is needed, I'll try a resize if I can compile the tools in safestrap. but I think it would not work
later edit: used fdisk to resize in safestrap and it broke again so it can't be done
Click to expand...
Click to collapse
Thanks for trying! What do you mean by changing type?
As I added here in the first post, I have a spare shattered but mostly working D4 I wouldn't be too sad to see bricked - I can try out more dangerous stuff if you point me in the right direction. I'd like to help testing different approaches to repartitioning if you have some potentially harmful ideas that you wouldn't try on your own phone.
Curious question aside: where is bootloader (and fastboot) stored? Is it sitting on some other small partition? Can we mount it to be read, or even to write there? What/where is that protection that keeps us from unlocking the bootloader?
Also, concerning mounting the free partitions to other system partitions: do you think it's possible to mount them as a folder in /data (whichever we use)? Does it matter what filesystem the partitions use? What part of boot-up runs the /system/etc/init.d/ scripts? Do you think attached proposals 2 or 3 are feasible? It would still have the stock system untouched for an emergency use and Safestrap storage, but its data would be shared with the safe system, with webtop mounted as /data/app or /data/data (1.4 GB should suffice I hope) which would leave us with nice 3.2 GB for the rest. Of course, preinstall's 600 MB for /system is hardly enough for CM12 with Pico version of PA GApps so the rest of used Google apps would inflate /data a bit - but still this is probably the best option we have now.
Actually, I find the stock /system/ to be adequate. Yea, it's a tight fit, but CM12+PA Micro Gapps slots in with 30-someodd megabytes to spare, and there shouldn't be any real need for additional space on top of that. Though, I suppose there could be trouble if CM starts including larger apps.
Init.d is done by the ROM itself, and has to be enabled at build time; CM12 actually has it shut off for whatever reason (Slimkat did as well, I would imagine CM11 also did). There's an app called "Universal Init.d" in the Store, but by the time it can get around to executing the scripts, it's obviously way too late to be screwing with vital partitions : \
Worth pointing out that Safestrap appears to have proper ADB access, you might be able to do something with partitions thataway. I don't know enough about partitions and mounting in Linux to take a jab at it. Woop, looks like that's already a no-go. Maybe the bootloader does a check or three to make sure the partitions are all in order, and throws a critical error if not.
If absolutely all else fails, there's still symlinking large apps into the newly-accessible partitions that can be done, either manually or with Link2SD/similar apps. It's a bit of a hassle, but an option nonetheless.
Well, stock /system is fine but I want to keep it untouched - mainly because I don't want to install CM12 as an update over stock JB, and also to keep myself from SBFing (at least in the long run) because of trivial issues. When this option is off the plate, the remaining partitions don't seem to offer enough space to run CM11 in a non-virtual slot (as Mentor.37 offers with his modified Safestrap with a "Safe" slot with 600M system and 1.4G for data).
Symlinking is an ugly solution - used it for a while, never liked it, mainly because symlinks broke once SD got unmounted or mounted as Mass Storage, with problems remounting afterwards.
Since we can modify the system freely, I'm sure that if necessary, we could make a neater solution than using an app to create symlinks after boot. Question how early in the boot process can we add some scripts (by flashing some zipped patch over the ROM) goes to more knowledgeable devs though...
first time I just used t option in fdisk to change partition type to whatever without changing size, the second time I resized some of them and every time after 1st reboot the M logo would appear for 1 second and from now on it would go straight into fastboot without M logo, so it seems that something in bootloader is verifying the layout or something and if is not good it would stop.
I don't think that it's possible to brick it for good, use rsd to recover
Regards
Thanks to @lucize for his trying, sadly it seems we can't repartition at all
@Mentor.37, is there a source to your customized SS 3.75 available? I'd like to try and mess around with it to put the Proposal 3 from my second post's attachment to work.
Could mounting and symlinking be done from Safestrap, or does the ROM do it itself? I have ideas of various cross-linking of folders on the partitions to kind of emulate repartitioning - but I'd have to try if it works and it would need to be done either before the system boot or shortly in the process. See attachment - that's a first draft I presume for this that the user keeps stock system only for keeping the phone bootable no matter what happens in other than stock slots, so stock data would be utilized only for root and safestrap, leaving most of its 3.2 GB free.
LuH said:
Thanks to @lucize for his trying, sadly it seems we can't repartition at all
@Mentor.37, is there a source to your customized SS 3.75 available? I'd like to try and mess around with it to put the Proposal 3 from my second post's attachment to work.
Could mounting and symlinking be done from Safestrap, or does the ROM do it itself? I have ideas of various cross-linking of folders on the partitions to kind of emulate repartitioning - but I'd have to try if it works and it would need to be done either before the system boot or shortly in the process. See attachment - that's a first draft I presume for this that the user keeps stock system only for keeping the phone bootable no matter what happens in other than stock slots, so stock data would be utilized only for root and safestrap, leaving most of its 3.2 GB free.
Click to expand...
Click to collapse
I believe that it's impossible because symlinking "works" after kernel is loaded and safetrap take place (is loaded) before a kernel is loaded....
If I'm not mistaken, symbolic linking is a filesystem thing, something like a shortcut only more complex (after all, it's completely transparent to anything accessing it). ADB probably has commands to make links, terminal emulators in Android definitely can. I think the problem you face is making sure the mountpoint, path, etc are exactly the same both in SS and Android.
Probably better to just do both the mounting and symlinking under Android, so you can be 100% sure that everything matches. We already know /cache/ is unused most of the time under LP, and can (probably) even be unmounted while booted if needbe; why not experiment with it, rather than going straight for the other more important partitions, until you're sure what you're thinking will work?
Edit: Wikipedia has a big ol' writeup on symlinks under various systems, looks like a fun read.
rblanca said:
I believe that it's impossible because symlinking "works" after kernel is loaded and safetrap take place (is loaded) before a kernel is loaded....
Click to expand...
Click to collapse
I guess then this could be implemented in some early booting stage of the system by some custom .zip being patched over, kind of the way Mentor.37's ramdisks are. Unfortunately I don't have nearly enough knowledge to do it.
What I hope could be done more easily is altering SS to maybe use not only shared cache but shared data as well - then webtop could be used for safe system, leaving more then enough space for it, and we still would have fairly usable 3.2 GB data for it. Maybe we could even assign preinstall as stock data? @Mentor.37, I'd really love to hear your opinion on this, or maybe even get your alternated safestrap's source so I could try it myself
Sorry guys, I'm dropping this. I tried CM12 in stock slot and it doesn't help the system as much as I hoped for, so there's no need for this from my side.
I also mistook the process of installing ROM in Stock. I thought I have to upgrade the stock system to the new ROM in order to keep Safestrap in it, but it turns out it's independent and when "wiping" stock /system it leaves the Safestrap there, so I can easily do a clean install of a new ROM in the stock slot
LuH said:
I tried CM12 in stock slot and it doesn't help the system as much as I hoped for, so there's no need for this from my side.
Click to expand...
Click to collapse
About that, could you compare the difference regarding performance between CM12 on the safe slot and CM12 on the stock slot?
I currently got it running on safe slot but I'm thinking about trying to install it to stock slot, now that I sold my Lapdock and don't need Weptop mode anymore.
But I only would do it if it increases the performance of the D4.
Shani Ace said:
About that, could you compare the difference regarding performance between CM12 on the safe slot and CM12 on the stock slot?
I currently got it running on safe slot but I'm thinking about trying to install it to stock slot, now that I sold my Lapdock and don't need Weptop mode anymore.
But I only would do it if it increases the performance of the D4.
Click to expand...
Click to collapse
I don't really remember unfortunately, been running it from stock slot for a while now. Before it definitely was way more laggy than now, but that's also when CM12 for D4 was in a VERY early phase.
It definitely increases the performance, I'm just not sure how much. I don't see any reason why leave original system in stock slot though, so no reason to run CM from the safe slot. I don't like the idea of mounting the ext fs with system running from it from fat storage, it's bound to generate some unnecessary overhead.
In case of any major screw-up, sbf is your friend and AFAIK can't get messed up itself It's a good idea to have the factory cable available though, just in case it for whatever reason dies on you with low battery.
Ok, still good to know, thanks! What's sbf?
Well when I got my D4 a few months ago, I thought installing on the stock slot would be dangerous (in terms of bricking) and since I had the Lapdock, I wanted to keep the stock ROM.
But since then I've read that many users have CM12 running on stock slot, so now I want to do that, too. It's just so annoying when the whole phone freezes for half a minute or so and I think that's mostly due to the limited memory (although I have 170-300 MB free most of the time).
Do I have to consider anything special or different while installing than on an install on safe slot?
Shani Ace said:
Ok, still good to know, thanks! What's sbf?
Click to expand...
Click to collapse
see
Q12: What is a SBF?
Shani Ace said:
It's just so annoying when the whole phone freezes for half a minute or so and I think that's mostly due to the limited memory (although I have 170-300 MB free most of the time).
Click to expand...
Click to collapse
Same here, I suspect it's also connected with throttled data transfer requests of multiple apps at once, but the RAM is IMO the biggest factor. In Linux RAM is almost always full and the "free" space is occupied by cache (filesystem cache or whatever else app's cache) ready to be deleted - maybe the phone is stuttering when freeing the "free" space for other use.
Weird is that my brother with almost vanilla L 5.1 on Nexus 4 has system consuming about 100M less RAM than my CM12 - device-specific drivers maybe?
Shani Ace said:
Do I have to consider anything special or different while installing than on an install on safe slot?
Click to expand...
Click to collapse
If you mean on stock slot, just remember that you need to have some system installed there even in order to boot into safestrap - delete old, install new and ONLY then reboot, otherwise you're facing sbf Learned the hard way It doesn't brick your phone (meaning you can unbrick it), but it's lengthy and annoying...
@sd_shadow: Thanks, now I know. Feels kinda stupid having asked one of the FAQ's - can't remember when that happened before.
LuH said:
Same here, I suspect it's also connected with throttled data transfer requests of multiple apps at once, but the RAM is IMO the biggest factor. In Linux RAM is almost always full and the "free" space is occupied by cache (filesystem cache or whatever else app's cache) ready to be deleted - maybe the phone is stuttering when freeing the "free" space for other use.
Weird is that my brother with almost vanilla L 5.1 on Nexus 4 has system consuming about 100M less RAM than my CM12 - device-specific drivers maybe?
Click to expand...
Click to collapse
Ah that's interesting, didn't know that about Linux before. Well I always imagined that when there's little memory left, the drive somehow gets slowed down because there would'nt be enough space for some temp files or executions. But I don't really have a clue.
On the other hand, different devices showing different and inconclusive results like that is something I already experienced many years ago. ^^
LuH said:
If you mean on stock slot, just remember that you need to have some system installed there even in order to boot into safestrap - delete old, install new and ONLY then reboot, otherwise you're facing sbf Learned the hard way It doesn't brick your phone (meaning you can unbrick it), but it's lengthy and annoying...
Click to expand...
Click to collapse
Yeah I know, I had read about it before. But you can't really miss all those hints everywhere, so I think the community takes good care of spreading that time-saving information.
Actually thanks for encouraging me, because last night I flashed CM12.1 and everything onto the stock slot! Today I installed and configured most of the things I needed (including int/ext storage swap) and I have to say, it really runs better! It might not be as smooth as with a more recent smartphone, but it's definitely snappier than CM12 on the safe slot was (now it's gone and will rest in peace^^). It may sometimes take a few seconds, but most of the time it's very fluid, a great, noticeable improvement.
Additionally, now that I don't have to household with the memory anymore, I installed all the apps that I had left out on the safe slot install and even installed a couple of huge games from the Play Store (NFS:MW, NBA Jam, Batman Dark Knight, Injustice) onto my microSD card and it still runs almost without any hick-ups! I haven't tested the games yet, though.
EDIT: It really seems to have something to do with the amount of memory left on /system. After all that installing I was down to ~ 200MB (which would've been normal on the safe slot) and the phone started lagging a little bit more. But after moving some games and apps to the SD I have more than 500MB 600MB - okay after deleting the cache it's 1,26GB - free on /system and the phone runs smoothly again.
Shani Ace said:
EDIT: It really seems to have something to do with the amount of memory left on /system. After all that installing I was down to ~ 200MB (which would've been normal on the safe slot) and the phone started lagging a little bit more. But after moving some games and apps to the SD I have more than 500MB 600MB - okay after deleting the cache it's 1,26GB - free on /system and the phone runs smoothly again.
Click to expand...
Click to collapse
I guess you're talking about /data, not /system (different partitions, /system is usually read-only and system is installed there with stuff you flash from safestrap, everything else goes to /data or /sdcard). Yup, when /data is becoming full, you're gonna experience some strange behavior.
/data is the first "Internal storage" in Storage settings, /system is not shown there, /sdcard is the second "Internal storage" and /sdcard-ext, or "SD card", is the actual microSD in default CM12 setup. I guess you have the last two switched though.
I've been wanting to ask this question forever, but havent and just dealt with it. Never experimented either.
When using TWRP to flash a new rom do i have to wipe my internal storage? Does that really ruin the flash? Again, never tried it id just rather ask. Its annoying to transfer my music and large files. Every time i flash a new rom i wipe everything and have to move the 12 gigs of files i enjoy using on my phone pretty often. So if i dont have to wipe them out every time that would be awesome to know.
Nope.
OcazPrime said:
I've been wanting to ask this question forever, but havent and just dealt with it. Never experimented either.
When using TWRP to flash a new rom do i have to wipe my internal storage? Does that really ruin the flash? Again, never tried it id just rather ask. Its annoying to transfer my music and large files. Every time i flash a new rom i wipe everything and have to move the 12 gigs of files i enjoy using on my phone pretty often. So if i dont have to wipe them out every time that would be awesome to know.
Click to expand...
Click to collapse
I've never wiped my internal storage when flashing a new rom
sakumaxp said:
I've never wiped my internal storage when flashing a new rom
Click to expand...
Click to collapse
+1 never wiped my internal storage
It's definitely not needed to wipe internal storage, nor do I recommend so; at least not every time. Some folks like to wipe it once in a while, to get rid of extraneous folders and files created by some custom ROMs, old (no longer used) apps, etc. Some folks might even do it frequently, but that is just their obsessiveness. But it's definitely not a requirement to do so.
I've flashed dozens and dozens (maybe hundreds) of ROMs on various Android devices over the years. I've never once wiped internal storage when doing so, that I can recall.
Think about it, on this device the internal storage is the only place TWRP can create a backup (since there is no removable SD slot). So if you made a backup before flashing a ROM (which I highly recommend), then wiped internal storage (to flash the ROM) you would be wiping out the backup you just made. Sure, you can copy a TWRP backup to your computer, than move it back to the phone after you wipe. But that is just a lot of hoops to jump through for little reason, and really not how the TWRP backup/restore feature is intended to be used.
If you look at the TWRP wipe screen, the default wipe just consists of user data (apps and settings ... /media is not touched), cache and Dalvik. And it says right there on the screen that most of the time, this is the only wipe you will need. It says that for a reason. Some folks may choose to go above and beyond, but that is just their choice (again, not a requirement).
On the other hand, it is good to routinely backup any files on your internal storage (that are important to you) to an off-phone location like your computer or cloud. Just in case something gets wipe unintentionally. But you can for the most part, save yourself the steps of wiping internal data and moving those files back to your phone every time you flash a ROM.