There are no protections against selfish mining attack in any client
And the full nodes are not going to accept your coins. You have effectively created another chain that is diverged from the main blockchain.
Don't these quotes contradict each other?
No, they don't contradict.
Selfish mining refers to miners withholding blocks to gain an edge over other miners to get a head start on solving the next block. This does not violate the network rules and its completely fine to the network.
However, you stated:
But if that evil miner has the ability to create longer invalid chain
If the rogue miner generates blocks that are invalid to the network, the blocks may or may not reach the SPV clients. Since the blocks will be rejected by the network, the chain will split and diverge from that point on. SPV clients might follow the rogue miner's chain but it will not be valid on the main Bitcoin chain.
In all honesty, its way better to just execute a 51% attack if you can generate blocks faster than the rest of the network.
**I was going to post this yesterday but well, the database error.