Ами SSD си е флаш памет, там важат същите неща - диска е разделен на блокове, върху които за да запишеш нещо, трябва да запишеш целия блок и има определен брой пъти в които блока може да се запише. Разликата е че SSD дисковете имат контролер, който прави това, което иначе би правила файловата система. Софтуерно не можеш да изчетеш всичко, но производителите на дисковете понякога имат за сваляне диагностичен софтуер, с който това може да стане. Има един забавен момент, че по-новите SSD дискове са доста различни - контролерът може да криптира блоковете със случаен ключ, който се пази, когато блокът се обяви за "свободен", за този ключ съответно се "забравя". Може също и да имат агресивен garbage collection, което в крайна сметка превръща устройството в доста сигуно унищожаващо стари данни. От потребителска гледна точка обаче, заради наличието на dedicated хардуер, виждаш устройството като нормално блоково такова - съответно можеш да го форматираш ако искаш с ext3 или fat.
По-простите неща като NAND-а във embedded джаджите и телефоните, където идеята е да е максимално евтино, обикновено нямат контролер, който да прави тези неща - вместо това софтуера го прави. Там нещата са доста различни. Сега това е от гледна точка на ubifs, но нещата трябва да са подобни и с останалите подобни файлови системи. Първо, имаме "подложката", устройството, което "описва" паметта, и това е char device, а не блоково такова и не може да се форматира и използва директно, обикновено се кръщават /dev/mtdX. Това устройство го "закачаш" и се появава ново, блоково устройство, като за целта се ползват tool-овете идващи с файловата система (ubiattach в случая с ubifs). Върху това новопоявено блоково устройство може и да е възможно да изшиеш ext или някаква друга "обикновена" файлова система, никога не съм пробвал, но не мисля че е добра идея, защото и да стане, ще се радваш доста за кратко на паметта. Но пък вероятно тогава ще имаш "по-сигурно" затриване. Последната стъпка е форматирането със "специалната" файлова система. Съответно има стандартни tool-ове като nanddump/nandwrite, с които можеш да изчетеш/изпишеш устройството в "суровия" му вид (демек като софтуера не коригира разни ремапванки, лоши блокове и т.н.). Именно от изчетеното с nanddump можеш да видиш доста неща, които иначе се водят изтрити.
Та ако имаш обикновена NAND памет със софтуерен wear leveling - можеш да изчетеш доста стари и изтрити неща. Ако имаш по-стар (или по-евтин) SSD диск, тогава можеш да правиш същото, стига производителят да е пуснал диагностичен софтуер. Ако имаш някой shiny нов скъпичък SSD, тогава точно това става доста сложно.
Е и в крайна сметка какво - мийго/маемо/силвърфиш/убунту телефон ли се казва анти-шпиономания решението? Няма да го руут-ваш, за да видиш какво къде и колко пази, sudo ще е достатъчно. И нули няма да пишеш, нишки няма да освобождаваш, и shred може да ползваш нейтив дето е думата.
"Шпиономания" е доста драматично (щото обичам да драматизирам
). Очевидно гугъл искат да си направят качествена услугата с геолокацията, донякъде на гърба на потребителите си, но то иначе няма как да стане. Това, което ми хрумна по-късно е че дори да пазят малко информация (за разлика от Apple както стана ясно в онази статия), те я пазят върху памет, която помни повече, отколкото трябва.
П.П: Truecrypt си имат отделна част от документацията, касаеща това и е забавна:
http://www.truecrypt.org/docs/?s=wear-levelingП.П2: на някой ако му се играе, ето малко играчки:
http://t.co/G3nlpgIhСамо че е с идеята да работи с HTC Wildfire, така че за останалите телефони root-ването и extract-ването на NAND паметта може да е различно...анализа и генерирането на html-а трябва да става по същия начин иначе.