Eu tenho uma solução baseada na resposta do @ Cherniv (funciona no macOS para mim). Duas diferenças: eu tenho um Main2Activity.java na pasta java à qual faço a mesma coisa e não me incomodo em chamar ./gradlew clean, pois parece que o empacotador nativo a reagir faz isso automaticamente de qualquer maneira.
De qualquer forma, minha solução faz o que o Cherniv faz, exceto que eu criei um script de shell bash para ele, pois estou criando vários aplicativos usando um conjunto de códigos e quero poder alterar facilmente o nome do pacote sempre que executo meus scripts npm.
Aqui está o script bash que eu usei. Você precisará modificar o packageName que deseja usar e adicionar qualquer outra coisa que desejar ... mas aqui estão os princípios básicos. Você pode criar um arquivo .sh, conceder permissão e, em seguida, executá-lo na mesma pasta em que o react-native é executado:
rm -rf ./android/app/src/main/java
mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
packageName="com.MyWebsite.MyAppName"
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
sed -i '' -e "s/.*package=\".*/ package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
sed -i '' -e "s/.*package = '.*/ package = '"$packageName"',/" ./android/app/BUCK
sed -i '' -e "s/.*applicationId.*/ applicationId \""$packageName"\"/" ./android/app/build.gradle
cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName
AVISO LEGAL: Você precisará editar o comentário do MainApplication.java próximo à parte inferior do arquivo java. Tem a palavra 'pacote' no comentário. Por causa de como o script funciona, ele pega qualquer linha com a palavra 'pacote' e a substitui. Por esse motivo, esse script pode não estar preparado para o futuro, pois pode haver a mesma palavra usada em outro lugar.
Segunda isenção de responsabilidade: os três primeiros comandos sed editam os arquivos java de um diretório chamado javaFiles. Eu mesmo criei esse diretório, pois quero ter um conjunto de arquivos java que são copiados de lá (como eu poderia adicionar novos pacotes a ele no futuro). Você provavelmente vai querer fazer a mesma coisa. Então copie todos os arquivos da pasta java (percorra suas subpastas para encontrar os arquivos java reais) e coloque-os em uma nova pasta chamada javaFiles.
Terceiro aviso: você precisará editar a variável packageName para estar alinhada com os caminhos na parte superior do script e na parte inferior (com.MyWebsite.MyAppName para com / MyWebsite / MyAppName)