Is there any way to put a password to avoid someone from hard resetting my phone? I have a Moto G, and I am very careful in protecting my data. I currently use CM Security App from the Google Play Store and it's very helpful in taking a photo to a person who tried unlocking my phone twice without success. Also I have locked my settings to avoid people from turning off my internet and GPS; in that way I will still able to track my phone via GPS. My phone is also locked to avoid people from uninstalling apps without my password. Additional, I had also disable USB debugging to stop someone from wiping my phone directly from a computer, but all this efforts will come down if the hard reset is enabled.

Is there any way to put a password to my boot settings to stop someone from making a hard reset to my phone? I already investigated, and encrypting my phone will not work for this.
No. Even if you could add such a restriction within Android, it would still be possible for an attacker to boot into recovery or into fastboot mode and reset the phone from there.



If you're trying to protect the confidentiality of your data (i.e. stop an attacker accessing it), then encrypting the phone is what's required for that. If you're trying to protect the integrity of your data (i.e. stop an attacker deleting it), then you can do that by backing it up to a secure location that there's no risk of losing.

If you're trying to stop someone deleting a tracking program or the like, then you're not protecting your data at all, you're trying to protect the phone itself. You can only do this with physical precautions, not software precautions, or by insuring against the loss.