Hadi bakalım bismillah.
1)öncelikle cihazınızdan ayarlar>hakkında>yapayım numarası> "siz bir geliştiricisiniz!" yazısını görene kadar tıklayın.
2)ayarlar>geliştirici seçenekleri> "kilidin OEM ile açılmasına izin ver" seçeneğini ve "USB hata ayıklamayı" aktif edin.
3) cihazın minimum %50 (daha üstü olsa daha iyi) şarjı olduğundan emin olun. Cihazı kapatın ve sonra güç+ses_azalt tuşlarına "warning! A Custom OS may damage your device" yazısı gelince orada "bootloader unlocking" tarzı bir şey göreceksiniz orada da dediği gibi ses_arttır tuşuna basılı tutun cihazın kilidi açılacaktır.
4)cihaz yeniden başlatacak kendini setup açıldığında hiçbir şey eklemeyin direkt USB haya ayıklamayı açın ve OEM ile kilit açmanın da artık aktif gözüküp dokunulmadığından emin olun.
5)size attığım Samsung driverlarını kurun (kurulum bitince PC'nizi yeniden başlatmanız önerilir). Sonra telefonunuzu sağlam bir kabloyla hiçbir sorunu olmadığına emin olduğunuz USB portuna bağlayın.
6) 
[OFFICIAL][TOOL][WINDOWS] ADB, Fastboot and Drivers - 15 seconds ADB Installer v1.4.3 buradan platform Tools'u kurun. Ardından CMD'yi açıp 
adb devices yazın. Telefonunuza bir bildirim gelecek izin ver deyin ona. Sonra tekrar 
adb devices yazın eğer bir seri numarası ve 
device yazıyorsa bağlantı tamamdır.
7) şimdi ise odinv3 programını açıp yönetici olarak çalıştırın ve telefonunuzu download Mode'a (kilit açarken ki yeşil ekran. Oraya gelip sadece ses açma tuşuna basın bu sefer) eğer 
added!! yazdıysa Odin, flashlamaya geçelim.
8) 
[RECOVERY][UNOFFICIAL] TWRP for Galaxy M31s (Exynos) buradan disabled_vbmeta. Tar ve TWRP'yi indirelim. Sonra Odin'de "userdata" yazan kısma vbmeta. Tar'ı koyup flashlayalım. Recovery'ye atacak, format data yapıp recoveryden "reboot to bootloader" yazan yere gelip yine download Mode'a geçelim. Şimdiyse TWRP dosyamızı AP kısmına koyalım ve Start'a basmadan önce "Auto-reboot"u kapatalım. Sonrasında Start'a basıp Odin'in Pass! Yazmasını bekleyelim.
9)şimdi Pass! Yazdığına göre güç+ses_arttır tuşlarına basılı tutalım eğer 15Sn'den fazla basmanıza rağmen TWRP ekranı gelmezse, güc+ses_azalt tuşlarına basılı tutalım ekran gittiğinde hızlıca güç+ses_arttır tuşlarına basalım TWRP ekranı gelirse eğer Recovery'yi flashladık demektir.
10) TWRP açıldığında oku kaydırmanızı isteyecek kaydırın ve sonra Advanced yazan yere gidip termınal'e tıklayın. Sonra oraya 
multidisabler yazalım, eğer yer yok cart curt derse bir daha 
multidisabler yazalım ve 
finished gördüğümüzde TWRP ana menüsüne gelip wıpe yazan yere tıklayalım, format data yazan yere gelip "yes" yazalım. Ardından tekrardan TWRP ana menüsüne gelip reboot yazan yere basıp recovery diyelim. TWRP açıldığında Advanced'a gelelim tekrar ADB sideload seçeneğini seçip önünüze gelen iki seçeneği tikleyip oku kaydırın.
10)PC'nizi yine telefonunuza bağlayın ve CMD'nizi açıp 
adb devices yazın. Eğer 
sideload yazdıysa şimdi 
adb sideload <burayı romunuzun dosya yoluyla değiştirin> ve enter a basın. 
serving: <zip adi> şeklinde bir çıktı aldıysanız ve çıktı % liği artıyorsa çok bir şey kalmadı demek. Sideload bitince factory reset+wipe data yapıp reboot atabilirsiniz. Ve cihazınız hazır!
Not: ADB sideload çıktıyı normalde 
total xfer: 1.00000x vermesi gerekirken 
total xfer: 0.98x veya 
error: succeded tarzı şeyler diyebilir. Eğer telefonda completed diyorsa sıkıntı yok demektir.