can i customize my address start through getnewaddress?
getnewaddress will return a new address each time, and the address string will be random. To create an address that begins with a specific string of characters, you will need to use some software to iterate through many random addresses, before an address with your desired string is found. This type of address is called a ‘vanity address’. If you search for that term you will find more info.
also what's the difference between addresses starting with 1 and addresses starting with 3?
An address starting with a 1 is a ‘pay to public key hash’ (P2PKH) address, whereas an address starting with a 3 is a ‘pay to script hash’ (P2SH) address. If you search for those two terms, you’ll find lots of additional info on this site about the differences between the two.
the reason of the need to customized addresses to make sure that it really creates this offline addresses instantly and is not in a hidden database installed while installing the bitcoin-cli
If you build bitcoin-core from source, then you can audit the code yourself ensure that no pre-derived/hardcoded addresses are being presented to you. Alternatively, you can trust the open-source process that involves countless developers that have audited the code to ensure no backdoors like this exist.
But if you really must verify the legitimacy of the presented addresses in this way, you’ll need to write a program to generate new addresses repeatedly, and then check the returned address to see if it matches your desired string. You may be able to find a ‘vanitygen’ style of software that can do this more efficiently, which is desirable for finding longer specific strings. Each additional specific character you desire will make the search 58x more difficult (since the address format is in base 58).